[ { "Title": "Missing DOI", "Year": 2024, "Abstract": "A record without DOI." }, { "DOI": "10.1000/MISSINGTITLE", "Year": 2024, "Abstract": "A record without title." }, { "DOI": "10.1000/MISSINGYEAR", "Title": "Missing year", "Abstract": "A record without year." }, { "DOI": "10.1000/MISSINGABSTRACT", "Title": "Missing abstract", "Year": 2024 }, { "DOI": "", "Title": "Empty DOI", "Year": 2024, "Abstract": "Empty DOI should fail." }, { "DOI": "10.1000/EMPTYTITLE", "Title": "", "Year": 2024, "Abstract": "Empty title should fail." }, { "DOI": "10.1000/WHITESPACE", "Title": " ", "Year": 2024, "Abstract": "Whitespace title is preserved and currently valid." }, { "DOI": 123, "Title": "Non-string DOI", "Year": 2024, "Abstract": "DOI must be a string." }, { "DOI": "10.1000/NONSTRINGTITLE", "Title": ["bad"], "Year": 2024, "Abstract": "Title must be a string." }, { "DOI": "10.1000/NONSTRINGABSTRACT", "Title": "Non-string abstract", "Year": 2024, "Abstract": 42 }, { "DOI": "10.1000/STRINGYEAR", "Title": "String year", "Year": "2024", "Abstract": "Year must not be a string." }, { "DOI": "10.1000/FLOATYEAR", "Title": "Float year", "Year": 2024.0, "Abstract": "Year must not be a float." }, { "DOI": "10.1000/BOOLYEAR", "Title": "Boolean year", "Year": true, "Abstract": "Year must not be Boolean." }, { "DOI": null, "Title": "Null DOI", "Year": 2024, "Abstract": "Null DOI should fail." }, "not an object", { "DOI": "10.1000/DUPLICATE", "Title": "Duplicate one", "Year": 2024, "Abstract": "First duplicate." }, { "DOI": "10.1000/DUPLICATE", "Title": "Duplicate two", "Year": 2025, "Abstract": "Second duplicate." }, { "DOI": "10.1000/EXTRA", "Title": "Unexpected field", "Year": 2025, "Abstract": "Extra fields are rejected for MVP.", "Journal": "Example" } ]