{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://abstractopedia.org/schemas/typed-dag/node.v2.schema.json","title":"Encyclopedia of Abstractions typed DAG node v2","description":"One canonical prime/emergent-prime or domain-specific abstraction, identified in a collision-safe namespace.","type":"object","additionalProperties":false,"required":["node_id","node_kind","slug","name","declared_type","one_liner","route","source_path"],"properties":{"node_id":{"type":"string","pattern":"^(prime|domain_specific):[a-z0-9]+(?:_[a-z0-9]+)*$"},"node_kind":{"type":"string","enum":["prime","domain_specific"]},"slug":{"type":"string","pattern":"^[a-z0-9]+(?:_[a-z0-9]+)*$"},"name":{"type":"string","minLength":1},"declared_type":{"type":"string","enum":["prime","emergent_prime","domain_specific"]},"one_liner":{"type":"string"},"route":{"type":"string","pattern":"^(primes|domain-specific)/[a-z0-9]+(?:_[a-z0-9]+)*/$"},"source_path":{"type":"string","pattern":"^(prime_abstractions|domain_specific_abstractions)/v2/[a-z0-9]+(?:_[a-z0-9]+)*\\.md$"}},"allOf":[{"if":{"properties":{"node_kind":{"const":"prime"}},"required":["node_kind"]},"then":{"properties":{"node_id":{"pattern":"^prime:"},"declared_type":{"enum":["prime","emergent_prime"]},"route":{"pattern":"^primes/"},"source_path":{"pattern":"^prime_abstractions/v2/"}}}},{"if":{"properties":{"node_kind":{"const":"domain_specific"}},"required":["node_kind"]},"then":{"properties":{"node_id":{"pattern":"^domain_specific:"},"declared_type":{"const":"domain_specific"},"route":{"pattern":"^domain-specific/"},"source_path":{"pattern":"^domain_specific_abstractions/v2/"}}}}]}
