Imports:
  - Types:
      - DocumentRule
      - ASTRule
    From: goga/ast/rules/base
  - Types:
      - signature_contains_type_name
      - ImportsCanNotBeEmpty
      - ImportsHasOnlyValidKeys
      - ImportItemIsValid
      - ImportUsageExists
      - ImportHasValidFromPath
      - ImportHasNotDuplicate
      - ImportIsUsed
    From: goga/ast/rules/document/imports
  - Types:
      - AllUsagesIsUsed
      - UsageFilepathExists
      - UsageUrlIsAccessible
      - UsageLinksHasNotConflicts
    From: goga/ast/rules/document/usages
  - Types:
      - EntitiesAndRoutinesHasNotConflicts
      - EntityHasOnlyValidKeys
      - RoutineHasOnlyValidKeys
      - SignatureIsValid
      - ReturnTypeHasLink
      - LocationIsRequired
    From: goga/ast/rules/document/structures
  - Types:
      - MutationExists
      - MutationIsValid
      - EmbeddedEntityCanNotHasMutations
    From: goga/ast/rules/document/mutation
  - Types:
      - AnnotationLinksExists
    From: goga/ast/rules/document/annotations
  - Types:
      - ImportsHasNotCyclicalDeps
      - ImportTypeExists
      - EmbeddedTypeHasLowLevel
    From: goga/ast/rules/ast

Usages:
  conventions: .goga/usages/conventions.md

Annotations: |
  When developing and testing: follow the practice `conventions`.

---

->DocumentRule: {}
->ASTRule: {}
->signature_contains_type_name: {}
->ImportsCanNotBeEmpty: {}
->ImportsHasOnlyValidKeys: {}
->ImportItemIsValid: {}
->ImportUsageExists: {}
->ImportHasValidFromPath: {}
->ImportHasNotDuplicate: {}
->ImportIsUsed: {}
->AllUsagesIsUsed: {}
->UsageFilepathExists: {}
->UsageUrlIsAccessible: {}
->UsageLinksHasNotConflicts: {}
->EntitiesAndRoutinesHasNotConflicts: {}
->EntityHasOnlyValidKeys: {}
->RoutineHasOnlyValidKeys: {}
->SignatureIsValid: {}
->ReturnTypeHasLink: {}
->LocationIsRequired: {}
->MutationExists: {}
->MutationIsValid: {}
->EmbeddedEntityCanNotHasMutations: {}
->AnnotationLinksExists: {}
->ImportsHasNotCyclicalDeps: {}
->ImportTypeExists: {}
->EmbeddedTypeHasLowLevel: {}

---

Author: Mikhail Trifonov
CreatedAt: 14/05/26

Description: |
  Defines the set of validation rules applied to CODEMANIFEST documents.
