changedInput schema / properties / params / properties / topic / description
Previous value: -"Optional phrase to filter this member's contributions by topic, e.g. 'housing benefit' or 'net zero'. Searched as an exact phrase."New value: +"Optional phrase to find in THIS member's contribution text bodies. Hansard searches the words the member actually said, NOT the topic or title of the debate. Pass tokens this member would have spoken — distinctive arguments ('disproportionate sanction'), statutory references ('section 21'), or motion numbers ('Motion C1') — not the bill's name (members rarely say e.g. 'Renters' Rights Bill' verbatim in their speeches). If you want 'every contribution this member made in a specific debate' regardless of words used, find the debate_ext_id then use parliament_get_debate_contributions(debate_ext_id, member_id=...)."
changedOutput schema / properties / contributions / items / description
Previous value: -"A single Hansard debate contribution."New value: +"A single Hansard debate contribution with citation-grade metadata.\n\nField provenance maps to the upstream hansard-api.parliament.uk\n`Contributions[i]` payload, so callers can footnote a contribution\nwithout re-querying."
addedOutput schema / properties / contributions / items / properties / attributed_to
Added value: +{
+ "description": "Full citable attribution string, e.g. 'The Minister of State, DESNZ (Lord Whitehead) (Lab)'. Includes role-at-time of contribution for ministerial interventions.",
+ "type": "string"
+}
addedOutput schema / properties / contributions / items / properties / chamber_section
Added value: +{
+ "description": "Hansard section bucket (Section): 'Commons Chamber', 'Lords Chamber', 'Westminster Hall', 'Written Answers', 'Written Statements'.",
+ "type": "string"
+}
addedOutput schema / properties / contributions / items / properties / column_end
Added value: +{
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The last Hansard column number this contribution spans, e.g. when a long speech runs across columns 200–203. Equal to `column_start` for short contributions. Same population semantics as `column_start`."
+}
addedOutput schema / properties / contributions / items / properties / column_ref
Added value: +{
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Hansard internal page-marker code from HansardSection (e.g. 'BE-BG1', 'AA-AD'). NOT the citable column number that appears in an OSCOLA footnote — see `column_start` / `column_end` for those, which are only available when reading the contribution via hansard://debate/{debate_ext_id}/contribution/{contribution_ext_id}. From parliament_search_hansard, only this page-marker is exposed."
+}
addedOutput schema / properties / contributions / items / properties / column_start
Added value: +{
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The citable Hansard column number where this contribution begins, e.g. 200, 1162. Extracted from `data-column-number` markers in the contribution HTML. Populated only when reading via the contribution resource — `parliament_search_hansard` returns this as None because Hansard's /search.json strips the column markers. To get the real column number for a search hit, read hansard://debate/{debate_ext_id}/contribution/{contribution_ext_id}."
+}
addedOutput schema / properties / contributions / items / properties / contribution_ext_id
Added value: +{
+ "description": "ContributionExtId GUID — stable citation key. Use as {contribution_ext_id} in hansard://debate/{debate_ext_id}/contribution/{contribution_ext_id}.",
+ "type": "string"
+}
changedOutput schema / properties / contributions / items / properties / date / description
Previous value: -"Date the contribution was made"New value: +"Date the contribution was made (SittingDate)"
addedOutput schema / properties / contributions / items / properties / debate_ext_id
Added value: +{
+ "description": "DebateSectionExtId GUID. Use as {debate_ext_id} in hansard://debate/{debate_ext_id}/header.",
+ "type": "string"
+}
addedOutput schema / properties / contributions / items / properties / debate_id
Added value: +{
+ "description": "Integer DebateSectionId — internal Hansard identifier",
+ "type": "integer"
+}
changedOutput schema / properties / contributions / items / properties / debate_title / description
Previous value: -"Title of the debate or question"New value: +"Title of the debate or question (DebateSection)"
addedOutput schema / properties / contributions / items / properties / house
Added value: +{
+ "description": "House of Parliament (House)",
+ "enum": [
+ "Commons",
+ "Lords"
+ ],
+ "type": "string"
+}
addedOutput schema / properties / contributions / items / properties / member_id
Added value: +{
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Members API integer ID. Use as {member_id} in hansard://member/{member_id}/biography for the member's role history."
+}
changedOutput schema / properties / contributions / items / properties / member_name / description
Previous value: -"Name of the contributing member"New value: +"Name of the contributing member (MemberName)"
changedOutput schema / properties / contributions / items / properties / party / description
Previous value: -"Political party affiliation"New value: +"Political party affiliation parsed from the trailing '(Party)' suffix in AttributedTo"
addedOutput schema / properties / contributions / items / properties / rank
Added value: +{
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Upstream relevance score (Rank). Higher = more relevant to the query."
+}
removedOutput schema / properties / contributions / items / properties / section
Removed value: -{
- "description": "Hansard section (e.g. 'Commons Chamber', 'Written Answers')",
- "type": "string"
-}
changedOutput schema / properties / contributions / items / properties / text / description
Previous value: -"Full text of the contribution (capped at 3000 characters)"New value: +"Contribution text (capped per max_text_chars on the input; default 3000). Source: ContributionTextFull when text_mode='full', ContributionText preview otherwise."
changedOutput schema / properties / contributions / items / properties / url / description
Previous value: -"Direct Hansard URL to this contribution"New value: +"Public hansard.parliament.uk URL for this contribution (synthesised from House/Date/DebateSectionExtId/ContributionExtId)."
changedOutput schema / properties / contributions / items / required
Previous value: -[
- "member_name",
- "date",
- "debate_title",
- "section",
- "text",
- "url"
-]New value: +[
+ "member_name",
+ "attributed_to",
+ "date",
+ "debate_title",
+ "debate_id",
+ "debate_ext_id",
+ "contribution_ext_id",
+ "chamber_section",
+ "house",
+ "text",
+ "url"
+]