Card Anatomy (Data Model)

Concept

In PokeDev, every Technology is a Card. We enforce a Strict Schema policy: no unknown fields are allowed. Every card must include its Identity Metadata (designer, first_release, package_name) to be valid.

1. Identity (Art & Soul)

Slug, Name, and visual Assets. Defines who the card is.

2. Data (Stats & Types)

Rigid technical specs. Validated against the Deck Building Rules.

e.g. Runtime Type (Water/Fire), Consistency Model (Attack Power)

3. Tags (Equipment & Effects)

Flexible community labels. Can be added or removed without reprinting the card.

e.g. "functional", "backend", "meta-framework"
Why the split?

Data is the immutable core (like a card's printed HP).
Tags are the current meta (like an attached Energy card).


Deck Building Rules (System Ontology)

Architect Reference

Just like a TCG has a "Standard Format", our System Validator serves as the Head Judge. It enforces strict rules on the Data layer. Any field not defined in the schema will be rejected (extra="forbid").

Nature

nature
LanguageLibraryFrameworkToolDatabaseEngineBridgeInfrastructurePlatformProtocolSaaSStandard

Runtime Type

runtime_types
CompiledInterpretedVirtual MachineJITHybridTranspiledNative

Concurrency

concurrency_models
Single ThreadMulti ThreadAsync Event LoopActor ModelGreen ThreadsVirtual ThreadsCSPSTMRendezvousRavenscarJorvikProcess Based

Memory

memory_management
ManualGarbage CollectedARCReference CountingOwnershipNoneHybridAutomatic

Protocols

protocols
HTTPHTTPSRESTGraphQLgRPCWebSocketSQLBinaryThriftSOAPOIDCSAMLTLSSSHIPsecTCPUDPAMQPKafka ProtocolMQTTQUICSSEWebRTCSignalRSTOMPAMQPC-ABI

Consistency

consistency_model
StrongEventualCausalACIDBASEAt Least Once

Resource Intensity

resource_intensity
LowMediumHigh

Stable Release

stable_release
e.g. v18.2.0

Licenses (SPDX)

licenses
MITApache-2.0GPL-3.0-only...

Website

website
URL

Repository

repository
URL

Identity (Designer)

designer
e.g. FacebookGoogle

First Release

first_release
Year (e.g. 2013)

Package Name

package_name
e.g. npm install react

Native Binary

native_packages
truefalse

Interfaces

interfaces
APICLISQLWebhookSDKGUIC-ABI

Paradigm

tags:paradigm:*
ArrayAspect OrientedConcatenativeConcurrentContract-BasedDeclarativeEvent DrivenFunctionalImperativeIocLogic ProgrammingMetaprogrammingMultiObject-OrientedProceduralReactiveReflective

Typing

tags:typing:*
DependentDuck TypingDynamic TypingGenericGradual TypingInferenceLinearNominalStatic TypingStrong TypingStructuralWeak Typing

Domain

tags:domain:*
AI / MLAPIAdminAdministrationAerospaceAudioAuthenticationAuthorizationAutomotiveBackend ApiBig DataBlockchainBusinessC AbiCI / CDCLICiCybersecurityDefenseDesktopDev ToolsDevopsE-CommerceEducationEmbeddedFinanceGUIGame DevGraphicsHealthcareIPsecInsuranceIoTMicroservicesMobileOIDCReal-TimeSAMLSDKSSHSafety CriticalScriptingSecuritySystemsTLS / SSLTask QueueTestingVideoWebWeb3Webhook

Layer

tags:layer:*
BackendData LayerEmbeddedFrontendFullstackInfrastructureMobileNetworkingObservabilitySecuritySystem

Features

tags:feature:*
Access TokensAcid ComplianceAuthenticationChange StreamsClusteringCompilationCross PlatformE2EFormal VerificationFull Text SearchGrant TypesHardware AccelerationHigh Availability (HA)HmrPackage ManagementRefresh TokensReplicationScopesShardingSpatial GisStatic AnalysisTemporal TablesTesting E2ETransactionsVector Search

Game Actions (API Commands)

Endpoints

Auth

Session-based authentication endpoints (headless auth).

POST /api/v1/auth/login/

Log in with username/email and password.

POST /api/v1/auth/signup/

Create a new account.

GET /api/v1/auth/session/

Get current session and authenticated user.

DELETE /api/v1/auth/session/

Log out current session.

Users

Authenticated profile endpoints.

GET /api/users/me/

Get current user profile.

PATCH /api/users/me/

Update current user profile fields.

API Keys

Personal API key management endpoints.

GET /api/api-keys/

List API keys for current user.

POST /api/api-keys/

Create a new API key.

DELETE /api/api-keys/{id}/

Revoke an API key by ID.

Cards

Core technology cards and related card data.

GET /api/v1/cards/

List cards with filtering and pagination.

GET /api/v1/cards/metadata/

Fetch filter metadata used by the UI.

GET /api/v1/cards/ontology/

Fetch ontology definitions for developer reference.

GET /api/v1/cards/tags/

List all available tags.

GET /api/v1/cards/{slug}/

Get card details by slug.

GET /api/v1/cards/{slug}/comments/

List comments for a card.

POST /api/v1/cards/{slug}/comments/

Create a card comment.

POST /api/v1/cards/{slug}/comments/{commentId}/hide/

Hide a comment (guardian/admin).

Stacks

Private and shared stack management endpoints.

GET /api/v1/stacks/private/

List private stacks of current user.

POST /api/v1/stacks/private/

Create a private stack.

GET /api/v1/stacks/private/{stackId}/

Get a private stack.

PATCH /api/v1/stacks/private/{stackId}/

Update a private stack.

DELETE /api/v1/stacks/private/{stackId}/

Delete a private stack.

POST /api/v1/stacks/share/

Create a shared stack snapshot.

GET /api/v1/stacks/share/{stackId}/

Retrieve a shared stack by ID.

Oracle

Recommendation and compatibility endpoints.

POST /api/v1/oracle/consult/

Get stack recommendations from questionnaire answers.

POST /api/v1/oracle/validate/

Validate compatibility for selected cards.

Suggestions

Contributor and guardian workflows for card suggestions.

GET /api/suggestions/

List current user suggestions.

POST /api/suggestions/

Create a new suggestion.

GET /api/suggestions/check-duplicate/

Check duplicates before creating a suggestion.

GET /api/guardian/suggestions/

List suggestions for guardian moderation.

GET /api/guardian/suggestions/{id}/

Get a single suggestion for moderation.

POST /api/guardian/suggestions/{id}/approve/

Approve a suggestion.

POST /api/guardian/suggestions/{id}/reject/

Reject a suggestion.

POST /api/guardian/suggestions/{id}/request-changes/

Request changes on a suggestion.

Metadata

Public metadata endpoints used by lexicon and moderation UI.

GET /api/metadata/system_tags/

Get system-defined tags.

GET /api/metadata/lexicon/

Get unified lexicon for tags and data definitions.