{"id":20532636,"url":"https://github.com/cimpress-mcp/tiger-types-json","last_synced_at":"2026-05-18T19:02:40.722Z","repository":{"id":74609397,"uuid":"95485076","full_name":"Cimpress-MCP/Tiger-Types-JSON","owner":"Cimpress-MCP","description":"JSON serialization and deserialization capabilities for Tiger Types.","archived":false,"fork":false,"pushed_at":"2018-05-08T20:18:04.000Z","size":164,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"develop","last_synced_at":"2025-01-16T13:17:44.153Z","etag":null,"topics":["either","json","option","tiger-types"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cimpress-MCP.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-26T20:08:50.000Z","updated_at":"2018-11-20T23:55:22.000Z","dependencies_parsed_at":"2023-04-15T02:46:56.955Z","dependency_job_id":null,"html_url":"https://github.com/Cimpress-MCP/Tiger-Types-JSON","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cimpress-MCP%2FTiger-Types-JSON","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cimpress-MCP%2FTiger-Types-JSON/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cimpress-MCP%2FTiger-Types-JSON/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cimpress-MCP%2FTiger-Types-JSON/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cimpress-MCP","download_url":"https://codeload.github.com/Cimpress-MCP/Tiger-Types-JSON/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242138805,"owners_count":20078007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["either","json","option","tiger-types"],"created_at":"2024-11-16T00:16:09.116Z","updated_at":"2025-10-10T23:42:52.779Z","avatar_url":"https://github.com/Cimpress-MCP.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tiger.Types.JSON\n\n## What It Is\n\nTiger.Types.JSON is a library that allows some of the Tiger types to be mapped to or from JSON in useful ways.\n\n## Why You Want It\n\nTiger types are unfamiliar to the JSON.NET serialization library, and due to the way that they represent values, require a little help to serialize or deserialize properly. This is similar to serializing a type of `Nullable\u003cT\u003e` (also written as `T?`). One could imagine an implementation of `Option\u003cint\u003e` called `Count` that serializes as a property of another object like this:\n\n```json\n{\n  \"count\": {\n    \"value\": 42,\n    \"hasValue\": true\n  }\n}\n```\n\n…which would require a client to create a very strange DTO or take a dependency on the Tiger types. (For various, difficult-to-believe reasons, the latter may be undesirable.)\n\nBecause all types in JSON are effectively nullable or optional, a superior serialization is this:\n\n```json\n{\n  \"count\": 42\n}\n```\n\n…where the None state is represented either by the JSON value `null` or by omitting the key entirely. This allows a client to implement a DTO with a property of type `int?` which can have a value or be `null`, of type `int` which will receive a default value (in this case, `0`), or of type `Option\u003cint\u003e`.\n\nThe supported operations for types are currently these:\n\n- `Option`: Serialize, deserialize\n- `Either`: Serialize\n\n## How You Develop It\n\nThis project is using the standard [`dotnet`](https://dot.net) build tool. A brief primer:\n\n- Restore NuGet dependencies: `dotnet restore`\n- Build the entire solution: `dotnet build`\n- Run all unit tests: `dotnet test`\n- Pack for publishing: `dotnet pack -o \"$(pwd)/dist\"`\n\nThe parameter `--configuration` (shortname `-c`) can be supplied to the `build`, `test`, and `pack` steps with the following meaningful values:\n\n- “Debug” (the default)\n- “Release”\n\nThis repository is attempting to use the [GitFlow](http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/) branching methodology. Results may be mixed, please be aware.\n\n## Thank You\n\nSeriously, though. Thank you for using this software. The author hopes it performs admirably for you.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcimpress-mcp%2Ftiger-types-json","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcimpress-mcp%2Ftiger-types-json","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcimpress-mcp%2Ftiger-types-json/lists"}