# Frontmatter v1.3 – Lint Rules (required_if / recommended_if / asserts)
# Diese Datei ist als Eingabe für euren Build/Linter gedacht.

rules:
  - id: blog-minimal
    when: { type: blog }
    required:
      - anyOf: [ title, article.headline ]
      - canonical
      - image
      - date_published
    recommended:
      - anyOf: [ article.author_name, publisher.name ]
      - publisher.logo
      - date_modified
      - same_as

  - id: home-organization
    when: { type: home }
    recommended:
      - organization.name
      - organization.url
      - organization.logo
      - organization.address.streetAddress
      - organization.address.postalCode
      - organization.address.addressLocality
      - organization.address.addressCountry
      - vatID
      - taxID
      - eori
      - register_number
      - same_as

  - id: profile-person
    when: { type: profile }
    required:
      - person.name
    recommended:
      - person.url
      - person.image
      - person.jobTitle
      - person.worksFor
      - person.same_as

  - id: pillar-service
    when: { type: pillar }
    required:
      - title
      - canonical
      - image
    recommended:
      - main_entity_type
      - service.name
      - service.description
      - service.areaServed

  - id: hreflang-pingpong
    when: {}
    assert:
      - expr: "len(hreflang.alternates or []) >= 1"
        message: "hreflang.alternates fehlt oder ist leer"
        severity: warning

  - id: checksum-all-artifacts
    when: {}
    assert:
      - expr: "file_exists(content.path)"
        message: "content.path zeigt auf keine existierende Datei"
        severity: error
      - expr: "sha256sum(content.path) == content.sha256"
        message: "SHA256 von content.md stimmt nicht mit content.sha256 überein"
        severity: error
      - expr: "checksum_has(['content.md','meta.json','meta.yaml'])"
        message: "checksum.sha256 sollte alle Artefakte enthalten (content.md, meta.json, meta.yaml)"
        severity: warning

  - id: jsonld-should-exist-on-html
    when: {}
    note: "Außerhalb des YAML prüft der Build, dass die kanonische HTML-Seite genau EINEN JSON-LD-Block (WebPage + mainEntity) ausliefert."
    assert: []

# Hinweise:
# - 'assert/expr' ist Pseudocode — implementiert ihr in eurem Linter.
# - 'severity': error|warning|info
