{
  "_id": "6a61a386f673e46fff56ce5e",
  "Package": "masque",
  "Title": "Structurally Faithful Development Surrogates for Tabular Data",
  "Version": "0.9.2",
  "Authors@R": "c(\nperson(\"Max\", \"Moldovan\",\nemail = \"max.moldovan@gmail.com\",\nrole  = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0001-9680-8474\",\naffiliation = \"Adelaide University\"))\n)",
  "Description": "Turns a confidential tabular dataset - a single table, a\nfolder of files, or a multi-sheet workbook - into a\nstructurally faithful synthetic clone suitable for pipeline\ndevelopment. Experimental-design allocation and the NA pattern\nare preserved exactly; categorical design, treatment, and\ncovariate vocabularies can be reversibly aliased; outcome and\nnumeric-covariate values are re-simulated via a Gaussian copula\nthat preserves the global covariance structure. Columns shared\nacross tables are aliased consistently so the synthetic tables\nstill join. A private 'recipe' object round-trips a pipeline\nwritten against the synthetic clone onto the original data. Not\na differential-privacy or anonymisation tool: outputs are\ndevelopment surrogates, not public-release-safe artefacts.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Language": "en-AU",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "URL": "https://max578.github.io/masque/, https://github.com/max578/masque",
  "BugReports": "https://github.com/max578/masque/issues",
  "Repository": "https://max578.r-universe.dev",
  "Date/Publication": "2026-07-23 04:46:02 UTC",
  "RemoteUrl": "https://github.com/max578/masque",
  "RemoteRef": "main",
  "RemoteSha": "64720f1cc2a77093a778ededd69699cb14f8ae60",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-07-23 05:12:11 UTC",
    "User": "root"
  },
  "Author": "Max Moldovan [aut, cre] (ORCID:\n<https://orcid.org/0000-0001-9680-8474>, affiliation: Adelaide\nUniversity)",
  "Maintainer": "Max Moldovan <max.moldovan@gmail.com>",
  "_user": "max578",
  "_type": "src",
  "_file": "masque_0.9.2.tar.gz",
  "_fileid": "https://r2.ropensci.org/f21b12190a904071684248105178528788f36e657c1ea9c2ba2676a1d45b1e69",
  "_filesize": 506298,
  "_sha256": "f21b12190a904071684248105178528788f36e657c1ea9c2ba2676a1d45b1e69",
  "_expires": "2026-10-31T05:15:48.000Z",
  "_created": "2026-07-23T05:12:11.000Z",
  "_published": "2026-07-23T05:15:50.179Z",
  "_jobs": [
    {
      "job": 89124164159,
      "time": 181,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8553401940"
    },
    {
      "job": 89124164198,
      "time": 166,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8553397930"
    },
    {
      "job": 89124164156,
      "time": 97,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8553390781"
    },
    {
      "job": 89124164143,
      "time": 95,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8553382556"
    },
    {
      "job": 89123741133,
      "time": 181,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8553351458"
    },
    {
      "job": 89124164142,
      "time": 107,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8553381598"
    },
    {
      "job": 89124164203,
      "time": 125,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8553386332"
    },
    {
      "job": 89124164175,
      "time": 119,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8553385048"
    },
    {
      "job": 89124164183,
      "time": 119,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8553384553"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/max578/actions/runs/29981382522",
  "_status": "success",
  "_upstream": "https://github.com/max578/masque",
  "_commit": {
    "id": "64720f1cc2a77093a778ededd69699cb14f8ae60",
    "author": "Max Moldovan <max.moldovan@gmail.com>",
    "committer": "Max Moldovan <max.moldovan@gmail.com>",
    "message": "test(recipe-io): compare recipe size to the data, not a fixed byte bound\n\nR-devel serialises the recipe several times larger than release R, tripping the\nhard-coded 50 KB threshold (release-R jobs all pass). The intent -- the recipe\nis metadata, not the data -- is now checked robustly by comparing against the\nraw data serialized the same way.\n",
    "time": 1784781962
  },
  "_maintainer": {
    "name": "Max Moldovan",
    "email": "max.moldovan@gmail.com",
    "login": "max578",
    "orcid": "0000-0001-9680-8474",
    "description": "Research scientist, R&D translation professional, woking on practical impact applications in agriculture, healthcare/madicine and good-practices-AI education.",
    "uuid": 35710829
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.2.0",
      "role": "Depends"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "data.table",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "S7",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "withr",
      "role": "Imports"
    },
    {
      "package": "agridat",
      "role": "Suggests"
    },
    {
      "package": "fst",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "maps",
      "role": "Suggests"
    },
    {
      "package": "readxl",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "writexl",
      "role": "Suggests"
    }
  ],
  "_owner": "max578",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-20",
      "n": 17
    },
    {
      "week": "2026-21",
      "n": 4
    },
    {
      "week": "2026-22",
      "n": 1
    },
    {
      "week": "2026-24",
      "n": 5
    },
    {
      "week": "2026-28",
      "n": 1
    },
    {
      "week": "2026-29",
      "n": 7
    },
    {
      "week": "2026-30",
      "n": 7
    }
  ],
  "_tags": [
    {
      "name": "v0.2.0",
      "date": "2026-05-16"
    },
    {
      "name": "v0.3.0",
      "date": "2026-05-17"
    },
    {
      "name": "v0.4.0",
      "date": "2026-05-17"
    },
    {
      "name": "v0.4.1",
      "date": "2026-05-18"
    },
    {
      "name": "v0.5.0",
      "date": "2026-06-10"
    },
    {
      "name": "v0.6.0",
      "date": "2026-06-10"
    },
    {
      "name": "v0.7.0",
      "date": "2026-06-13"
    },
    {
      "name": "v0.7.1",
      "date": "2026-06-13"
    },
    {
      "name": "v0.8.0",
      "date": "2026-07-13"
    },
    {
      "name": "v0.8.1",
      "date": "2026-07-13"
    },
    {
      "name": "v0.8.2",
      "date": "2026-07-13"
    },
    {
      "name": "v0.9.2",
      "date": "2026-07-23"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "max578",
      "count": 56,
      "uuid": 35710829
    }
  ],
  "_userbio": {
    "uuid": 35710829,
    "type": "user",
    "name": "Max Moldovan",
    "followers": 0,
    "description": "Research scientist, R&D translation professional, woking on practical impact applications in agriculture, healthcare/madicine and good-practices-AI education."
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/masque"
  },
  "_devurl": "https://github.com/max578/masque",
  "_pkgdown": "https://max578.github.io/masque/",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/masque.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_exports": [
    "apply_recipe",
    "audit_mask",
    "clean_table",
    "detect_design",
    "jitter_coordinates",
    "mask",
    "mask_set",
    "masque",
    "plot_design_summary",
    "propose_roles",
    "read_recipe",
    "read_set",
    "recipe",
    "reveal_maps",
    "role_options",
    "roles_validate",
    "save_recipe",
    "set_role",
    "synthesise_geospatial",
    "synthetic",
    "unmask",
    "write_set"
  ],
  "_help": [
    {
      "page": "apply_recipe",
      "title": "Translate a data frame into the synthetic namespace",
      "topics": [
        "apply_recipe"
      ]
    },
    {
      "page": "audit_mask",
      "title": "Audit a masque object for leakage and shareability risks",
      "topics": [
        "audit_mask"
      ]
    },
    {
      "page": "clean_table",
      "title": "Tidy a dirty table's column names and category labels before masking",
      "topics": [
        "clean_table"
      ]
    },
    {
      "page": "detect_design",
      "title": "Detect environment scope and experimental-design structure",
      "topics": [
        "detect_design"
      ]
    },
    {
      "page": "jitter_coordinates",
      "title": "Coarsen geographic coordinates by an on-land privacy jitter",
      "topics": [
        "jitter_coordinates"
      ]
    },
    {
      "page": "mask",
      "title": "Mask a tabular dataset into a structurally faithful development surrogate",
      "topics": [
        "mask"
      ]
    },
    {
      "page": "mask_set",
      "title": "Mask a multi-table set with cross-table-consistent aliasing",
      "topics": [
        "mask_set"
      ]
    },
    {
      "page": "masque",
      "title": "Mask a dataset end to end with one guided call",
      "topics": [
        "masque"
      ]
    },
    {
      "page": "plot_design_summary",
      "title": "Sanity-check visualisation for detected scope and design",
      "topics": [
        "plot_design_summary"
      ]
    },
    {
      "page": "propose_roles",
      "title": "Propose role and action classifications for the columns of a data frame",
      "topics": [
        "propose_roles"
      ]
    },
    {
      "page": "read_recipe",
      "title": "Read a masque recipe from disk",
      "topics": [
        "read_recipe"
      ]
    },
    {
      "page": "read_set",
      "title": "Read a set of tables from a folder, an Excel workbook, or a list",
      "topics": [
        "read_set"
      ]
    },
    {
      "page": "recipe",
      "title": "Extract the recipe from a masque object",
      "topics": [
        "recipe"
      ]
    },
    {
      "page": "reveal_maps",
      "title": "Reveal the level maps held inside a recipe",
      "topics": [
        "reveal_maps"
      ]
    },
    {
      "page": "role_options",
      "title": "List every role and action combination masque accepts",
      "topics": [
        "role_options"
      ]
    },
    {
      "page": "roles_validate",
      "title": "Validate a roles table",
      "topics": [
        "roles_validate"
      ]
    },
    {
      "page": "save_recipe",
      "title": "Save a masque recipe to disk",
      "topics": [
        "save_recipe"
      ]
    },
    {
      "page": "set_role",
      "title": "Set the role and action of one or more columns in a roles table",
      "topics": [
        "set_role"
      ]
    },
    {
      "page": "synthesise_geospatial",
      "title": "Re-anchor synthetic geospatial coordinates at plausible-but-fake locations",
      "topics": [
        "synthesise_geospatial"
      ]
    },
    {
      "page": "synthetic",
      "title": "Extract the synthetic data from a masque object",
      "topics": [
        "synthetic"
      ]
    },
    {
      "page": "unmask",
      "title": "Translate data from the synthetic namespace back to the original",
      "topics": [
        "unmask"
      ]
    },
    {
      "page": "write_set",
      "title": "Write a masked set to disk, mirroring the input format",
      "topics": [
        "write_set"
      ]
    }
  ],
  "_readme": "https://github.com/max578/masque/raw/main/README.md",
  "_rundeps": [
    "cli",
    "data.table",
    "digest",
    "glue",
    "lattice",
    "lifecycle",
    "magrittr",
    "Matrix",
    "pillar",
    "pkgconfig",
    "rlang",
    "S7",
    "tibble",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "confidentiality.Rmd",
      "filename": "confidentiality.html",
      "title": "Confidentiality and the threat model",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What masque protects, and what it does not",
        "Two axes of control: roles and actions",
        "Depth controls",
        "The conditional clone: preserving the treatment effect",
        "What the copula carries: monotone, not non-monotone, association",
        "The leakage audit",
        "Multi-table sets",
        "Geographic coordinates",
        "Operational guidance",
        "References"
      ],
      "created": "2026-05-16 10:35:56",
      "modified": "2026-07-23 03:47:24",
      "commits": 8
    },
    {
      "source": "getting_started.Rmd",
      "filename": "getting_started.html",
      "title": "Getting started with masque",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What masque is for",
        "The one-call path",
        "The masking plan: roles and actions",
        "Editing the plan as code",
        "Local and collaborate modes",
        "Tidy, dates, and depth",
        "More than one table",
        "Multi-environment structure",
        "Where to go next"
      ],
      "created": "2026-05-16 08:35:00",
      "modified": "2026-07-22 21:41:01",
      "commits": 8
    },
    {
      "source": "recipe_anatomy.Rmd",
      "filename": "recipe_anatomy.html",
      "title": "Recipe anatomy and the round-trip",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why the recipe matters",
        "What a recipe holds",
        "Printing is redacted",
        "The round-trip",
        "Fail-closed translation",
        "Saving the recipe",
        "Multi-table bundles"
      ],
      "created": "2026-05-16 10:35:56",
      "modified": "2026-07-22 21:41:01",
      "commits": 6
    }
  ],
  "_score": 4.021189299069938,
  "_indexed": true,
  "_nocasepkg": "masque",
  "_universes": [
    "max578"
  ],
  "_previous": "0.8.2",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.9.2",
      "date": "2026-07-23T05:14:35.000Z",
      "distro": "resolute",
      "commit": "64720f1cc2a77093a778ededd69699cb14f8ae60",
      "fileid": "https://r2.ropensci.org/283f9817fa073d38450b478e0129d4b5d9a55b9285bc2b6c3ab5e36ad48794a3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/29981382522"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.9.2",
      "date": "2026-07-23T05:14:27.000Z",
      "distro": "resolute",
      "commit": "64720f1cc2a77093a778ededd69699cb14f8ae60",
      "fileid": "https://r2.ropensci.org/126af76e7e72b2bedb90864282b59ba1c0b7a92d6dfdb4d32702cc8d26c8f569",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/29981382522"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.9.2",
      "date": "2026-07-23T05:14:19.000Z",
      "commit": "64720f1cc2a77093a778ededd69699cb14f8ae60",
      "fileid": "https://r2.ropensci.org/ae51517278bf0dad6913cf5732d5cebd77d06bfb9ca7ff149441aabaf5f77c64",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/29981382522"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.9.2",
      "date": "2026-07-23T05:13:51.000Z",
      "commit": "64720f1cc2a77093a778ededd69699cb14f8ae60",
      "fileid": "https://r2.ropensci.org/7d4b01ba8da307adebc82d44d198b9206d78e44f9144135ab15ec86f3654dbca",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/29981382522"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.9.2",
      "date": "2026-07-23T05:14:16.000Z",
      "commit": "64720f1cc2a77093a778ededd69699cb14f8ae60",
      "fileid": "https://r2.ropensci.org/1d3589994f2da2484d1c9de0da676ecc491d6225ff9aa7ffb704a76cdaea1bfd",
      "status": "success",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/29981382522"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.9.2",
      "date": "2026-07-23T05:13:25.000Z",
      "commit": "64720f1cc2a77093a778ededd69699cb14f8ae60",
      "fileid": "https://r2.ropensci.org/00a7c0ddbd228dc8de4172c14651bbb6f1820ce8b04f9908db1b3844a15d8de3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/29981382522"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.9.2",
      "date": "2026-07-23T05:13:22.000Z",
      "commit": "64720f1cc2a77093a778ededd69699cb14f8ae60",
      "fileid": "https://r2.ropensci.org/df2991e954f708ff5a3b7181a597d91796f8725c4d9f3bb8377cff930fc2a383",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/29981382522"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.9.2",
      "date": "2026-07-23T05:13:24.000Z",
      "commit": "64720f1cc2a77093a778ededd69699cb14f8ae60",
      "fileid": "https://r2.ropensci.org/03961e32b7682f3f3994a5099cc879109426c8928d1ed378faeb32aeabf6b623",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/29981382522"
    }
  ]
}