Skip to content

competent_authority: het model laat type vallen en het niveau verschilt per bron #1299

Description

@humanintheloop25

RFC-002 staat op Accepted en Implemented, maar de beslissing is maar half
gebouwd. Drie bronnen zijn het oneens over competent_authority.

1. Het model laat type vallen. Het schema definieert het object als
{name, type: INSTANCE|CATEGORY}. Het Rust-model is:

// packages/law-model/src/model.rs:15
pub enum CompetentAuthority {
    String(String),
    Structured { name: String },
}

Er is geen type-veld, dus serde gooit het stilzwijgend weg. De engine kan
INSTANCE niet van CATEGORY onderscheiden, terwijl dat precies het
onderscheid is waarvoor RFC-002 §3 het veld invoerde: één Dienst Toeslagen
tegenover 342 colleges van B&W die per context geresolved moeten worden.

2. Het niveau verschilt per bron. RFC-002 §1 koos expliciet artikelniveau,
"not at document top-level". Het schema declareert het veld dan ook alleen onder
machine_readable. Het corpus zet het consequent bovenaan het document, zie
corpus/regulation/nl/wet/wet_inkomstenbelasting_2001/2025-01-01.yaml:10. Het
model accepteert beide (model.rs:602 en model.rs:750).

De reden van RFC-002 is nog steeds geldig, en de Wet inkomstenbelasting is er
zelf het voorbeeld van: competent_authority: Belastingdienst staat op de hele
wet, terwijl RFC-009 §80 betoogt dat alleen de artikelen die de aanslag
opleveren de Belastingdienst vereisen.

Voorstel

  • Structured krijgt een type-veld (#[serde(rename = "type")]) met
    INSTANCE als default, plus een conformancefixture die aantoont dat het veld
    niet meer verdwijnt.
  • Beslissen welk niveau geldt. Blijft het artikelniveau, dan migreert het corpus
    en gaat het wetniveau uit het model. Wordt documentniveau een toegestane
    default, dan moet het schema dat declareren en krijgt RFC-002 een aanvulling.

Gevonden bij het schrijven van RFC-036 (#1298), waar dit als voorwaarde geldt:
zonder werkend INSTANCE/CATEGORY kan één generieke bevoegdheid niet door
342 organen geïnstantieerd worden.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions