Human need
A directory only helps if players can quickly find something compatible, currently joinable, and trustworthy while owners can compete without opaque manipulation.
Outcome
Build the canonical search/status/ranking read model and moderation workflow shared by every discovery surface.
Foundation
Reuse and refine the Browser voting/listing work in https://github.com/minekube/website/issues/94 rather than creating a second ranking system. Endpoint/dashboard status consistency remains dependent on https://github.com/minekube/website/issues/92 .
Search and status
Full-text search with typo tolerance across approved public fields.
Fixed, localized taxonomy and compatibility facets.
Deterministic online, offline, degraded, and unknown states with source timestamp and freshness.
Organic relevance that is documented at a useful level and cannot be silently replaced by paid ordering.
Edge caching with explicit purge/revalidation for publication, moderation, and status transitions.
Start with Postgres-native search/read models; add a separate search service only from measured need.
Trust and moderation
Ownership and duplicate-address checks.
Reporting, review, suspension, appeal, and reinstatement workflows.
Impersonation, unsafe-link/media, malware/modpack, hate/harassment, and vote-abuse policies.
Public-safe reason codes and owner-visible operational detail.
Labeled sponsorship only, isolated from organic API results unless callers explicitly request it.
Acceptance criteria
Search result relevance and every filter/sort have deterministic fixtures and regression tests.
Status freshness and transitions agree with the authoritative dashboard source and cannot be faked by a listing author.
Offline historical listings remain clearly marked and can be excluded with an online-only filter.
Ranking uses accepted aggregates, preserves suspicious submissions for review, and resists obvious duplicate/player/IP vote abuse defined by website feat(share): add cross-loader friend worlds and direct joining #94 .
A moderation removal disappears from API, website, mod, Browser Hub, caches, and feeds within the SLO.
Owners receive an actionable, privacy-safe reason and appeal path.
Search telemetry contains no raw player identity, endpoint token, private endpoint, or high-resolution behavioral profile.
Load tests establish initial capacity and show graceful rate limiting/degradation.
Non-goals
Personalized surveillance-based recommendations.
Unlabeled pay-to-win ranking.
A separate truth for each first-party surface.
Human need
A directory only helps if players can quickly find something compatible, currently joinable, and trustworthy while owners can compete without opaque manipulation.
Outcome
Build the canonical search/status/ranking read model and moderation workflow shared by every discovery surface.
Foundation
Reuse and refine the Browser voting/listing work in https://github.com/minekube/website/issues/94 rather than creating a second ranking system. Endpoint/dashboard status consistency remains dependent on https://github.com/minekube/website/issues/92.
Search and status
Trust and moderation
Acceptance criteria
Non-goals