Skip to main content
Glama

Plan one room with BuildBatch (every option)

plan_room
Read-onlyIdempotent

Works out the whole shopping list for one room, with every option the planner has: exact door and window sizes, a product's own coverage and pack sizes, an L-shaped room, tiling part-way up a wall. Arguments are the named parameters of /plan.json. A job is required. Repeated door, window and opening values are arrays. No price is used; price arguments are ignored and named in the answer. Returns a short shopping list: each item with its quantity and reason, and a link to the whole list.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
jobYesThe job. Required. wallpaper is the paint job with papered walls and no ceiling; tiles is the paint job with tiled walls and no ceiling; both is paint and a new floor; paint-carpet is paint and carpet from a roll; skirting is skirting and architrave.
areaNoLoft insulation, concrete and a patio only: the floor's area in square metres, up to 900, instead of length and width. How far it is round is then not known: the formwork or the edging is a check without a length.
bathNoA bath or shower tray: a name (bath-1700, tray-900) or its length along the wall x its rim height x how far it comes into the room, in the units. The wall behind it comes off up to the rim, and its footprint off a floor being laid. The key may be repeated.
doorNoOne per door, the value repeated for more. A typical size by name (int-762 is a standard internal door) or width x height in the units. *2 after it means two the same.
haveNoLine ids, comma separated, to mark Already have before the list is made. The ids are in the answer's lines. Rarely needed.
loftNoWhether the loft insulation uses labelled example figures (quick) or figures measured in the loft and read from the chosen roll (custom). Needed for the keys below to take effect.
nameNoWhat the room is called. Optional. It is carried into the links the answer gives, where the person can also add it themselves.
needNoLine ids, comma separated, to mark Need before the list is made. The ids are in the answer's lines. Rarely needed.
planNoA room that is not a rectangle: its corners in turn, in metres whatever units says, as x,y pairs separated by ";". Replaces length and width. Up to 24 corners.
trimNoNew skirting, architrave or both (skirting,architrave), with any job in a room; a loft floor, a slab and a patio take none. Default skirting for the skirting job, else none.
boardNoWhether the plasterboard uses labelled example figures (quick) or figures from the board and system specification (custom). Needed for the keys below to take effect.
checkNoLine ids, comma separated, to mark Check first before the list is made. The ids are in the answer's lines. Rarely needed.
floorNoWhether the flooring uses the labelled example figures (quick) or figures read off the pack (custom). Needed for the keys below to take effect.
paperNoWhether the wallpaper is the labelled example roll (quick) or read off the label (custom). Needed for the keys below to take effect.
patioNoWhether the patio uses labelled example figures (quick: a 600 × 600 mm slab, the makers' 10 mm joint, 10% for cuts, a 30 mm bed at 1 : 4) or figures entered from the slab and the guides (custom). Needed for the keys below to take effect. The room is the patio: its length and width, no height.
unitsNoWhat length, width, height and the doors are measured in. Default m. In ft write 13ft9in, or 13 for whole feet.
wallsNoWhat the walls get. The job sets it, so it is rarely needed: paint, wallpaper, tiles, board or none.
widthNoThe other side of the floor, in the units. Not needed when plan is given.
carpetNoWhether the carpet uses the labelled example roll figures (quick) or figures from the carpet and shop (custom). Needed for the keys below to take effect.
detailNoHow much to return. summary, the default: each item with its quantity and reason, what to check first and the list link. full: every line's working, pack breakdown and each shop's search link as well (20 KB or more).
groundNoWhether the floor is on the ground floor. Default unsure. Used by flooring jobs.
heightNoFloor to ceiling, in the units. Needed when walls are painted, papered, tiled or boarded (paint-carpet too); not for flooring, carpet, loft insulation, concrete or skirting alone.
lengthNoOne side of the floor, in the units. A length may carry its own unit (360cm, 4200mm). Not needed when plan is given.
windowNoOne per window, the value repeated for more. A typical size by name (win-standard) or width x height in the units. *2 after it means two the same.
ceilingNoWhat the ceiling gets: paint, or board on the plasterboard job, or none. Another word is named in ignored[] and the job's own choice used.
fittingNoHow the floor is fitted. Default unsure. Used by flooring jobs.
lengthsNoWhether the skirting and architrave lengths are the labelled examples (quick) or the lengths the shop sells (custom). Needed for the keys below to take effect.
openingNoAny other opening to take off the walls (a garage door, an archway), as width x height or a name. The key may be repeated.
surfaceNoWhat the painted surfaces are like now. Default sound, the planner's own default. Used by painting jobs.
concreteNoWhether the concrete slab uses labelled example figures (quick) or the thickness decided for the job and figures read off the bag (custom). Needed for the keys below to take effect. The room is the slab: its length and width, no height.
subfloorNoWhat is under a new floor. Default unsure. Used by flooring jobs.
woodworkNoPaint jobs only: paint when the woodwork is painted too (this room's doors, their architraves, the windows' frames and the skirting, counted from the doors and windows given and the room's perimeter, in satinwood at a typical coverage). With walls=none and ceiling=none, the woodwork on its own. Left out: not painted.
loft.overNoThickness in millimetres of a second roll laid across the joists over one layer of the first; optional. With it, the first roll is one layer between the joists and the rest is this roll.
loft.packNoSquare metres covered by one chosen roll or pack; optional for a 100, 150, 170 or 200 mm roll, whose typical coverage (the maker's, as the shops' feeds name it) is used and said so.
patio.bagNoWhat one bag of cement fills in litres, from the bag; optional. Without it the bags are counted from a typical 17 L a 25 kg bag, said to be typical.
patio.bedNoDepth of the full mortar bed in millimetres, before tamping. The makers' guides give 30 to 40 mm.
wallpaintNoWhether the wall paint uses the labelled example figures (quick) or figures read off the tin (custom). Needed for the keys below to take effect.
walltilesNoWhether the wall tiles are the labelled example box (quick) or read off the box (custom). Needed for the keys below to take effect.
woodpaintNoWhether the woodwork paint (with woodwork=paint) uses the labelled example figures (quick) or figures read off the tin (custom). Needed for the keys below to take effect.
board.skimNoMetres squared one bag of finish plaster covers, from the bag.
loft.depthNoThickness of one new mineral-wool layer in millimetres, from the chosen roll.
loft.extraNoPercent to add for cuts and fitting.
newplasterNoPainting jobs: is any of it new or bare plaster? yes adds a mist coat of white contract matt on its own line and leaves the sugar soap out; no is a sound painted surface. Left out, the list is a sound room's and its primer line carries the question to ask.
not-neededNoLine ids, comma separated, to mark Not needed before the list is made. The ids are in the answer's lines. Rarely needed.
patio.bagsNoHow the sand and the sub-base are bought: bulk (bulk bags of about 800 kg) or bags (25 kg bags). Bulk unless given; each is counted in whole bags from a typical figure that names its source.
patio.packNoHow many slabs a pack holds, a whole number; optional. With it, whole packs are counted.
patio.sandNoParts of sharp sand in the bed, by volume. The guides give 3 or 4 to 1 of cement.
board.extraNoPercent to add for cuts. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used.
board.widthNoBoard width in metres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used.
carpet.stepNoThe step in metres in which the shop sells the cut length.
floor.depthNoFloor tiles: the tile's thickness in millimetres, for the grout. Left out, a typical 10 mm is used and said so.
floor.extraNoPercent to add for cuts. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
floor.groutNoFloor tiles: metres squared one bag of grout covers.
floor.jointNoFloor tiles: the joint width in millimetres. With the tile size, the grout is counted by the makers' rule; left out, a typical 3 mm joint is used and said so.
floor.packsNoMetres squared in one pack or box, comma separated for several sizes. A size may carry a price after "@": the price is accepted and ignored. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
floor.tilehNoFloor tiles: the other side of a tile, in millimetres (with floor.tilew).
floor.tilewNoFloor tiles: one side of a tile, in millimetres, for a count of tiles (with floor.tileh). Optional; the boxes are still counted by area.
loft.targetNoChosen target insulation depth in millimetres.
paper.matchNoHow the pattern lines up. straight and half-drop need paper.repeat. unsure, or left out with no repeat, is counted as a straight match with a 64 cm repeat (three drops a roll at an ordinary ceiling), which keeps the rolls from running short; the line names it.
paper.pasteNoRolls one packet of paste does.
paper.widthNoRoll width in centimetres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used.
patio.extraNoPercent to add for cuts.
patio.houseNoWhether the patio is against the house along one side: yes or no. It decides how many edges the sub-base runs 150 mm past and how much edge restraint is counted. Left out, it is counted as against the house along its longest side, and the sub-base line carries the question.
patio.jointNoJoint width in millimetres. The makers' guides give 10 mm as the minimum.
patio.widthNoOne side of a slab in millimetres.
skirtingoffNoFlooring jobs: is the skirting coming off, to go back over the new floor's edge? yes leaves the scotia beading out; no counts it in 2.4 m lengths. Left out, the beading is counted and its line carries the question to ask.
woodsurfaceNoWith woodwork=paint: what the woodwork is like now. Default sound (painted before and sound). bare adds a check line for knotting, primer and undercoat; flaking adds the note about old paint.
board.finishNoHow the boards will be finished.
board.fixingNoHow the boards will be fixed.
board.layersNoWhole layers from the complete system specification. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used.
board.lengthNoBoard length in metres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used.
carpet.widthNoThe fixed width of the carpet roll in metres. Left out with carpet=quick: the standard width (4 or 5 m; 2, 3 or 4 m for sheet vinyl) that needs least roll for the room, said so on the list.
ceilingpaintNoWhether the ceiling paint uses the labelled example figures (quick) or figures read off the tin (custom). Needed for the keys below to take effect.
colourchangeNoPainting jobs: is the colour going much lighter or darker? yes adds one coat to the walls. Left out, two coats are counted and the wall paint's line carries the question to ask.
concrete.mixNoWhich of the maker's published mixes the cement, sand and aggregate follow: general purpose, paving or foundation. Mixed on site only.
floor.trowelNoFloor tiles: the notched trowel, 6 or 12 (mm). The adhesive is counted from it; left out, the one the adhesive maker's sheet gives for the tile's size (6 up to 300 mm on its long side, 12 above).
paper.lengthNoRoll length in metres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used.
paper.repeatNoPattern repeat in centimetres. 0 or left out for none.
patio.cementNoParts of cement in the bed, by volume.
patio.coversNoSquare metres one pack covers, from the pack, for a project pack of mixed sizes; optional, and it beats patio.pack. With it, whole packs are counted by area.
patio.lengthNoThe other side of a slab in millimetres.
patio.primerNoSquare metres one tub of slurry primer covers, from the tub; optional. Without it the tubs are counted from a typical 12 m² a tub, said to be typical.
trim.breastsNoHow many chimney breasts the new skirting goes round: each adds its two returns. Left out: none.
walls.lengthNoPaint, tiles or wallpaper on some walls only (a splashback, a shower's walls, a feature wall): the total length of the walls covered, in the units. It replaces the room's perimeter for the paint, the tiles' area and the paper's drops; doors and windows are then not taken off. Left out: all the walls. Sent with a height and with no length, width, plan or area, it is a wall on its own: the room is not needed (walls only: no ceiling, woodwork, floor or skirting).
concrete.bagsNoHow the sand, aggregate or ballast of a mix on site, and the sub-base, are bought: bulk (bulk bags of about 800 kg) or bags (25 kg bags). Bulk unless given; each is counted in whole bags from a typical figure that names its source.
concrete.stepNoThe step in cubic metres the supplier sells ready-mixed concrete in. Ready-mixed only; optional.
floor.patternNoHow the floor is laid: straight, brick, diagonal or herringbone. A diagonal or herringbone lay takes 15% for cuts where a straight lay takes 10%, unless floor.extra gives another figure. Left out: straight.
loft.existingNoExisting insulation depth in millimetres.
loft.overpackNoSquare metres one roll of the second insulation covers; optional for a 100, 150, 170 or 200 mm roll.
walltiles.boxNoMetres squared in one box. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used.
board.adhesiveNoWall boards one bag of plasterboard adhesive fixes, from its instructions.
concrete.extraNoPercent to add for an uneven base and spillage. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
concrete.yieldNoCubic metres one bag makes, as printed on the bag. Bags only. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
floor.adhesiveNoFloor tiles: metres squared one bag of adhesive covers.
floor.coveringNoWhat the floor is. Default laminate.
floor.groutbagNoFloor tiles: the weight of one bag of grout in kilograms; 5 when left out.
floor.underlayNoWhether underlay is needed.
patio.jointingNoSquare metres one pail of jointing compound covers at your joint, from the pail; optional. Without it the pails are counted from a typical 7 m² a pail, said to be typical.
patio.subdepthNoDepth of the sub-base under the patio in millimetres, decided for the job; optional. Without it the makers' usual minimum of 100 mm is used, said to be typical.
wallpaint.tinsNoTin sizes in litres, comma separated, for the wall paint. A size may carry a price after "@": the price is accepted and ignored.
woodpaint.tinsNoTin sizes in litres, comma separated, for the woodwork paint (with woodwork=paint). A size may carry a price after "@": the price is accepted and ignored.
carpet.coveringNoWhat is laid from the roll: carpet (with underlay and gripper) or sheet vinyl (loose laid, taped or glued; no underlay). Sheet vinyl is sold in 2, 3 and 4 m widths; its quick example is a 3 m roll.
carpet.underlayNoMetres squared covered by one chosen underlay roll or pack.
concrete.supplyNobags: bags of dry mix; mix: cement with sand and aggregate, mixed on site; mixed: ready-mixed concrete, delivered by the cubic metre. Mind the two: "mix" is mixed on site, "mixed" arrives mixed. Left out, the planner follows the slab's volume (bags up to 0.25 m³, mixed on site up to 1 m³, ready-mixed above) and the answer says what each of the three ways takes.
concrete.weightNoThe weight of one bag in kilograms. Bags only. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
wallpaint.coatsNoCoats on the tin, for the wall paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
wallpaint.extraNoPercent to add for waste and touch-ups, for the wall paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
walltiles.depthNoThe wall tile's thickness in millimetres, for the grout. Left out, a typical 8 mm is used and said so.
walltiles.extraNoPercent to add for cuts. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used.
walltiles.groutNoMetres squared one bag of grout covers.
walltiles.jointNoThe joint width in millimetres. With the tile size, the grout is counted by the makers' rule; left out, a typical 2 mm joint is used and said so.
walltiles.tilehNoThe other side of a wall tile, in millimetres (with walltiles.tilew).
walltiles.tilewNoOne side of a wall tile, in millimetres, for a count of tiles (with walltiles.tileh). Optional; the boxes are still counted by area.
woodpaint.coatsNoCoats on the tin, for the woodwork paint (with woodwork=paint). With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
woodpaint.extraNoPercent to add for waste and touch-ups, for the woodwork paint (with woodwork=paint). With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
carpet.allowanceNoThe trimming allowance in metres, added once to each room measurement.
carpet.directionNoWhich way the pile or pattern must run. Not decided lets the planner show the smaller one-piece cut that fits.
lengths.skirtingNoLength the skirting is sold in, in metres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used.
trim.breastdepthNoHow deep a chimney breast is, in millimetres. Left out: 350, an example depth, said to be one.
walltiles.heightNoMetres up the wall the tiles go. Left out: to the ceiling.
walltiles.revealNoHow deep the window reveals are, in millimetres, on walls tiled to the ceiling: the reveals are tiled too. Left out: 150, an example depth, said to be one. 0 leaves them out.
walltiles.trowelNoThe notched trowel, 6 or 12 (mm). The adhesive is counted from it; 6 when left out.
ceilingpaint.tinsNoTin sizes in litres, comma separated, for the ceiling paint. A size may carry a price after "@": the price is accepted and ignored.
concrete.subdepthNoDepth of the sub-base under the slab in millimetres, decided for the job; optional. With it, the sub-base is counted in bulk bags or 25 kg bags from a typical figure that names its source.
floor.adhesivebagNoFloor tiles: the weight of one bag of adhesive in kilograms; 20 when left out.
walltiles.patternNoHow the wall tiles are laid: straight, brick, diagonal or herringbone. A diagonal or herringbone lay takes 15% for cuts where a straight lay takes 10%, unless walltiles.extra gives another figure. Left out: straight.
ceilingpaint.coatsNoCoats on the tin, for the ceiling paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
ceilingpaint.extraNoPercent to add for waste and touch-ups, for the ceiling paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
concrete.aggregateNoWhether the aggregate is bought as all-in ballast or as sharp sand and coarse aggregate. Mixed on site only.
concrete.thicknessNoSlab thickness in millimetres, decided for the job. BuildBatch suggests none. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
lengths.architraveNoLength the architrave is sold in, in metres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used.
wallpaint.coverageNoMetres squared covered by one litre in one coat, from the tin, for the wall paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
walltiles.adhesiveNoMetres squared one bag of adhesive covers.
walltiles.groutbagNoThe weight of one bag of grout in kilograms; 5 when left out.
woodpaint.coverageNoMetres squared covered by one litre in one coat, from the tin, for the woodwork paint (with woodwork=paint). With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
floor.underlay.rollNoMetres squared in one roll of underlay.
ceilingpaint.coverageNoMetres squared covered by one litre in one coat, from the tin, for the ceiling paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples.
walltiles.adhesivebagNoThe weight of one bag of adhesive in kilograms; 20 when left out.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed28 schema fields changed
    • changedInput schema / properties / board.extra / description
      Previous value: -"Percent to add for cuts."New value: +"Percent to add for cuts. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used."
    • changedInput schema / properties / board.layers / description
      Previous value: -"Whole layers from the complete system specification."New value: +"Whole layers from the complete system specification. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used."
    • changedInput schema / properties / board.length / description
      Previous value: -"Board length in metres."New value: +"Board length in metres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used."
    • changedInput schema / properties / board.width / description
      Previous value: -"Board width in metres."New value: +"Board width in metres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used."
    • changedInput schema / properties / ceiling / description
      Previous value: -"What the ceiling gets: paint, board or none."New value: +"What the ceiling gets: paint, or board on the plasterboard job, or none. Another word is named in ignored[] and the job's own choice used."
    • changedInput schema / properties / ceilingpaint.coats / description
      Previous value: -"Coats on the tin, for the ceiling paint. Custom only."New value: +"Coats on the tin, for the ceiling paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / ceilingpaint.coverage / description
      Previous value: -"Metres squared covered by one litre in one coat, from the tin, for the ceiling paint. Custom only."New value: +"Metres squared covered by one litre in one coat, from the tin, for the ceiling paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / ceilingpaint.extra / description
      Previous value: -"Percent to add for waste and touch-ups, for the ceiling paint. Custom only."New value: +"Percent to add for waste and touch-ups, for the ceiling paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / concrete.extra / description
      Previous value: -"Percent to add for an uneven base and spillage."New value: +"Percent to add for an uneven base and spillage. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / concrete.supply / description
      Previous value: -"Bags of dry mix, cement with sand and aggregate mixed on site (mix), or ready-mixed concrete delivered by the cubic metre."New value: +"bags: bags of dry mix; mix: cement with sand and aggregate, mixed on site; mixed: ready-mixed concrete, delivered by the cubic metre. Mind the two: \"mix\" is mixed on site, \"mixed\" arrives mixed."
    • changedInput schema / properties / concrete.thickness / description
      Previous value: -"Slab thickness in millimetres, decided for the job. BuildBatch suggests none."New value: +"Slab thickness in millimetres, decided for the job. BuildBatch suggests none. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / concrete.weight / description
      Previous value: -"The weight of one bag in kilograms. Bags only."New value: +"The weight of one bag in kilograms. Bags only. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / concrete.yield / description
      Previous value: -"Cubic metres one bag makes, as printed on the bag. Bags only."New value: +"Cubic metres one bag makes, as printed on the bag. Bags only. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / floor.extra / description
      Previous value: -"Percent to add for cuts. Custom only."New value: +"Percent to add for cuts. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / floor.packs / description
      Previous value: -"Metres squared in one pack or box, comma separated for several sizes. A size may carry a price after \"@\": the price is accepted and ignored."New value: +"Metres squared in one pack or box, comma separated for several sizes. A size may carry a price after \"@\": the price is accepted and ignored. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / lengths.architrave / description
      Previous value: -"Length the architrave is sold in, in metres."New value: +"Length the architrave is sold in, in metres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used."
    • changedInput schema / properties / lengths.skirting / description
      Previous value: -"Length the skirting is sold in, in metres."New value: +"Length the skirting is sold in, in metres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used."
    • changedInput schema / properties / paper.length / description
      Previous value: -"Roll length in metres."New value: +"Roll length in metres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used."
    • changedInput schema / properties / paper.width / description
      Previous value: -"Roll width in centimetres."New value: +"Roll width in centimetres. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used."
    • changedInput schema / properties / trim / description
      Previous value: -"New skirting, architrave or both, with any job. Default skirting for the skirting job, else none."New value: +"New skirting, architrave or both (skirting,architrave), with any job in a room; a loft floor, a slab and a patio take none. Default skirting for the skirting job, else none."
    • changedInput schema / properties / wallpaint.coats / description
      Previous value: -"Coats on the tin, for the wall paint. Custom only."New value: +"Coats on the tin, for the wall paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / wallpaint.coverage / description
      Previous value: -"Metres squared covered by one litre in one coat, from the tin, for the wall paint. Custom only."New value: +"Metres squared covered by one litre in one coat, from the tin, for the wall paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / wallpaint.extra / description
      Previous value: -"Percent to add for waste and touch-ups, for the wall paint. Custom only."New value: +"Percent to add for waste and touch-ups, for the wall paint. With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / walltiles.box / description
      Previous value: -"Metres squared in one box. Custom only."New value: +"Metres squared in one box. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used."
    • changedInput schema / properties / walltiles.extra / description
      Previous value: -"Percent to add for cuts."New value: +"Percent to add for cuts. Custom only: with quick the example is used, and a figure sent here is named in ignored[] as not used."
    • changedInput schema / properties / woodpaint.coats / description
      Previous value: -"Coats on the tin, for the woodwork paint (with woodwork=paint). Custom only."New value: +"Coats on the tin, for the woodwork paint (with woodwork=paint). With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / woodpaint.coverage / description
      Previous value: -"Metres squared covered by one litre in one coat, from the tin, for the woodwork paint (with woodwork=paint). Custom only."New value: +"Metres squared covered by one litre in one coat, from the tin, for the woodwork paint (with woodwork=paint). With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
    • changedInput schema / properties / woodpaint.extra / description
      Previous value: -"Percent to add for waste and touch-ups, for the woodwork paint (with woodwork=paint). Custom only."New value: +"Percent to add for waste and touch-ups, for the woodwork paint (with woodwork=paint). With quick, a figure sent here is used and labelled as the person's; the ones not sent stay the labelled examples."
  2. Changed1 schema field changed
    • addedInput schema / properties / woodsurface
      Added value: +{
      +  "description": "With woodwork=paint: what the woodwork is like now. Default sound (painted before and sound). bare adds a check line for knotting, primer and undercoat; flaking adds the note about old paint.",
      +  "enum": [
      +    "sound",
      +    "bare",
      +    "flaking"
      +  ],
      +  "type": "string"
      +}
  3. Changed6 schema fields changed
    • changedInput schema / properties / area / description
      Previous value: -"Loft insulation, concrete and a patio only: the floor's area in square metres, instead of length and width. How far it is round is then not known: the formwork or the edging is a check without a length."New value: +"Loft insulation, concrete and a patio only: the floor's area in square metres, up to 900, instead of length and width. How far it is round is then not known: the formwork or the edging is a check without a length."
    • changedInput schema / properties / carpet.width / description
      Previous value: -"The fixed width of the carpet roll in metres."New value: +"The fixed width of the carpet roll in metres. Left out with carpet=quick: the standard width (4 or 5 m; 2, 3 or 4 m for sheet vinyl) that needs least roll for the room, said so on the list."
    • changedInput schema / properties / floor.trowel / description
      Previous value: -"Floor tiles: the notched trowel, 6 or 12 (mm). The adhesive is counted from it; 12 when left out."New value: +"Floor tiles: the notched trowel, 6 or 12 (mm). The adhesive is counted from it; left out, the one the adhesive maker's sheet gives for the tile's size (6 up to 300 mm on its long side, 12 above)."
    • changedInput schema / properties / job / description
      Previous value: -"The job. Required. wallpaper is the paint job with papered walls and no ceiling; tiles is the paint job with tiled walls and no ceiling; both is paint and a new floor; paint-carpet is paint and one unjoined piece of carpet; skirting is skirting and architrave."New value: +"The job. Required. wallpaper is the paint job with papered walls and no ceiling; tiles is the paint job with tiled walls and no ceiling; both is paint and a new floor; paint-carpet is paint and carpet from a roll; skirting is skirting and architrave."
    • addedInput schema / properties / walls.length
      Added value: +{
      +  "description": "Tiles or wallpaper on some walls only (a splashback, a shower's walls, a feature wall): the total length of the walls covered, in the units. It replaces the room's perimeter for the tiles' area and the paper's drops; doors and windows are then not taken off. Left out: all the walls.",
      +  "type": "string"
      +}
    • changedInput schema / properties / woodwork / description
      Previous value: -"Paint jobs only: paint when the woodwork is painted too (this room's doors, their architraves, the windows' frames and the skirting, counted from the doors and windows given and the room's perimeter, in satinwood at a typical coverage). Left out: not painted."New value: +"Paint jobs only: paint when the woodwork is painted too (this room's doors, their architraves, the windows' frames and the skirting, counted from the doors and windows given and the room's perimeter, in satinwood at a typical coverage). With walls=none and ceiling=none, the woodwork on its own. Left out: not painted."
  4. Changed17 schema fields changed
    • addedInput schema / properties / area
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Loft insulation, concrete and a patio only: the floor's area in square metres, instead of length and width. How far it is round is then not known: the formwork or the edging is a check without a length."
      +}
    • addedInput schema / properties / floor.adhesivebag
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Floor tiles: the weight of one bag of adhesive in kilograms; 20 when left out."
      +}
    • addedInput schema / properties / floor.depth
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Floor tiles: the tile's thickness in millimetres, for the grout. Left out, a typical 10 mm is used and said so."
      +}
    • addedInput schema / properties / floor.groutbag
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Floor tiles: the weight of one bag of grout in kilograms; 5 when left out."
      +}
    • addedInput schema / properties / floor.joint
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Floor tiles: the joint width in millimetres. With the tile size, the grout is counted by the makers' rule; left out, a typical 3 mm joint is used and said so."
      +}
    • addedInput schema / properties / floor.trowel
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Floor tiles: the notched trowel, 6 or 12 (mm). The adhesive is counted from it; 12 when left out."
      +}
    • addedInput schema / properties / walltiles.adhesivebag
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The weight of one bag of adhesive in kilograms; 20 when left out."
      +}
    • addedInput schema / properties / walltiles.depth
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The wall tile's thickness in millimetres, for the grout. Left out, a typical 8 mm is used and said so."
      +}
    • addedInput schema / properties / walltiles.groutbag
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The weight of one bag of grout in kilograms; 5 when left out."
      +}
    • addedInput schema / properties / walltiles.joint
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The joint width in millimetres. With the tile size, the grout is counted by the makers' rule; left out, a typical 2 mm joint is used and said so."
      +}
    • addedInput schema / properties / walltiles.trowel
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The notched trowel, 6 or 12 (mm). The adhesive is counted from it; 6 when left out."
      +}
    • addedInput schema / properties / woodpaint
      Added value: +{
      +  "description": "Whether the woodwork paint (with woodwork=paint) uses the labelled example figures (quick) or figures read off the tin (custom). Needed for the keys below to take effect.",
      +  "enum": [
      +    "quick",
      +    "custom"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / woodpaint.coats
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Coats on the tin, for the woodwork paint (with woodwork=paint). Custom only."
      +}
    • addedInput schema / properties / woodpaint.coverage
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Metres squared covered by one litre in one coat, from the tin, for the woodwork paint (with woodwork=paint). Custom only."
      +}
    • addedInput schema / properties / woodpaint.extra
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Percent to add for waste and touch-ups, for the woodwork paint (with woodwork=paint). Custom only."
      +}
    • addedInput schema / properties / woodpaint.tins
      Added value: +{
      +  "description": "Tin sizes in litres, comma separated, for the woodwork paint (with woodwork=paint). A size may carry a price after \"@\": the price is accepted and ignored.",
      +  "type": "string"
      +}
    • addedInput schema / properties / woodwork
      Added value: +{
      +  "description": "Paint jobs only: paint when the woodwork is painted too (this room's doors, their architraves, the windows' frames and the skirting, counted from the doors and windows given and the room's perimeter, in satinwood at a typical coverage). Left out: not painted.",
      +  "enum": [
      +    "paint",
      +    "none"
      +  ],
      +  "type": "string"
      +}
  5. Changed7 schema fields changed
    • addedInput schema / properties / concrete.bags
      Added value: +{
      +  "description": "How the sand, aggregate or ballast of a mix on site, and the sub-base, are bought: bulk (bulk bags of about 800 kg) or bags (25 kg bags). Bulk unless given; each is counted in whole bags from a typical figure that names its source.",
      +  "type": "string"
      +}
    • removedInput schema / properties / concrete.subdensity
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "string"
      -    }
      -  ],
      -  "description": "The sub-base material's density in tonnes a cubic metre, as the supplier gives it. With concrete.subdepth; optional. BuildBatch assumes none."
      -}
    • changedInput schema / properties / concrete.subdepth / description
      Previous value: -"Depth of the sub-base under the slab in millimetres, decided for the job. With concrete.subdensity, the sub-base is counted in tonnes; optional."New value: +"Depth of the sub-base under the slab in millimetres, decided for the job; optional. With it, the sub-base is counted in bulk bags or 25 kg bags from a typical figure that names its source."
    • addedInput schema / properties / loft.over
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Thickness in millimetres of a second roll laid across the joists over one layer of the first; optional. With it, the first roll is one layer between the joists and the rest is this roll."
      +}
    • addedInput schema / properties / loft.overpack
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Square metres one roll of the second insulation covers; optional for a 100, 150, 170 or 200 mm roll."
      +}
    • changedInput schema / properties / loft.pack / description
      Previous value: -"Square metres covered by one chosen roll or pack."New value: +"Square metres covered by one chosen roll or pack; optional for a 100, 150, 170 or 200 mm roll, whose typical coverage (the maker's, as the shops' feeds name it) is used and said so."
    • addedInput schema / properties / patio.covers
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Square metres one pack covers, from the pack, for a project pack of mixed sizes; optional, and it beats patio.pack. With it, whole packs are counted by area."
      +}
  6. Changed6 schema fields changed
    • changedInput schema / properties / patio.bag / description
      Previous value: -"What one bag of cement fills in litres, from the bag or the shop; optional. With it, the cement is counted in bags."New value: +"What one bag of cement fills in litres, from the bag; optional. Without it the bags are counted from a typical 17 L a 25 kg bag, said to be typical."
    • addedInput schema / properties / patio.bags
      Added value: +{
      +  "description": "How the sand and the sub-base are bought: bulk (bulk bags of about 800 kg) or bags (25 kg bags). Bulk unless given; each is counted in whole bags from a typical figure that names its source.",
      +  "type": "string"
      +}
    • changedInput schema / properties / patio.jointing / description
      Previous value: -"Square metres one pail of jointing compound covers at your joint, from the pail; optional. With it, pails are counted."New value: +"Square metres one pail of jointing compound covers at your joint, from the pail; optional. Without it the pails are counted from a typical 7 m² a pail, said to be typical."
    • changedInput schema / properties / patio.primer / description
      Previous value: -"Square metres one tub of slurry primer covers, from the tub; optional. With it, tubs are counted."New value: +"Square metres one tub of slurry primer covers, from the tub; optional. Without it the tubs are counted from a typical 12 m² a tub, said to be typical."
    • removedInput schema / properties / patio.subdensity
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "string"
      -    }
      -  ],
      -  "description": "The sub-base material's density in tonnes a cubic metre, as the supplier gives it. With patio.subdepth; optional. BuildBatch assumes none."
      -}
    • changedInput schema / properties / patio.subdepth / description
      Previous value: -"Depth of the sub-base under the patio in millimetres, decided for the job. With patio.subdensity, the sub-base is counted in tonnes; optional."New value: +"Depth of the sub-base under the patio in millimetres, decided for the job; optional. Without it the makers' usual minimum of 100 mm is used, said to be typical."
  7. Changed15 schema fields changed
    • changedInput schema / properties / job / enum
      Previous value: -[
      -  "paint",
      -  "wallpaper",
      -  "tiles",
      -  "flooring",
      -  "carpet",
      -  "loft",
      -  "both",
      -  "paint-carpet",
      -  "skirting",
      -  "plasterboard",
      -  "concrete"
      -]New value: +[
      +  "paint",
      +  "wallpaper",
      +  "tiles",
      +  "flooring",
      +  "carpet",
      +  "loft",
      +  "both",
      +  "paint-carpet",
      +  "skirting",
      +  "plasterboard",
      +  "concrete",
      +  "patio"
      +]
    • addedInput schema / properties / patio
      Added value: +{
      +  "description": "Whether the patio uses labelled example figures (quick: a 600 × 600 mm slab, the makers' 10 mm joint, 10% for cuts, a 30 mm bed at 1 : 4) or figures entered from the slab and the guides (custom). Needed for the keys below to take effect. The room is the patio: its length and width, no height.",
      +  "enum": [
      +    "quick",
      +    "custom"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / patio.bag
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "What one bag of cement fills in litres, from the bag or the shop; optional. With it, the cement is counted in bags."
      +}
    • addedInput schema / properties / patio.bed
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Depth of the full mortar bed in millimetres, before tamping. The makers' guides give 30 to 40 mm."
      +}
    • addedInput schema / properties / patio.cement
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Parts of cement in the bed, by volume."
      +}
    • addedInput schema / properties / patio.extra
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Percent to add for cuts."
      +}
    • addedInput schema / properties / patio.joint
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Joint width in millimetres. The makers' guides give 10 mm as the minimum."
      +}
    • addedInput schema / properties / patio.jointing
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Square metres one pail of jointing compound covers at your joint, from the pail; optional. With it, pails are counted."
      +}
    • addedInput schema / properties / patio.length
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The other side of a slab in millimetres."
      +}
    • addedInput schema / properties / patio.pack
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "How many slabs a pack holds, a whole number; optional. With it, whole packs are counted."
      +}
    • addedInput schema / properties / patio.primer
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Square metres one tub of slurry primer covers, from the tub; optional. With it, tubs are counted."
      +}
    • addedInput schema / properties / patio.sand
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Parts of sharp sand in the bed, by volume. The guides give 3 or 4 to 1 of cement."
      +}
    • addedInput schema / properties / patio.subdensity
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The sub-base material's density in tonnes a cubic metre, as the supplier gives it. With patio.subdepth; optional. BuildBatch assumes none."
      +}
    • addedInput schema / properties / patio.subdepth
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Depth of the sub-base under the patio in millimetres, decided for the job. With patio.subdensity, the sub-base is counted in tonnes; optional."
      +}
    • addedInput schema / properties / patio.width
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "One side of a slab in millimetres."
      +}
  8. Changed2 schema fields changed
    • addedInput schema / properties / concrete.subdensity
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The sub-base material's density in tonnes a cubic metre, as the supplier gives it. With concrete.subdepth; optional. BuildBatch assumes none."
      +}
    • addedInput schema / properties / concrete.subdepth
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Depth of the sub-base under the slab in millimetres, decided for the job. With concrete.subdensity, the sub-base is counted in tonnes; optional."
      +}
  9. Changed4 schema fields changed
    • addedInput schema / properties / concrete.aggregate
      Added value: +{
      +  "description": "Whether the aggregate is bought as all-in ballast or as sharp sand and coarse aggregate. Mixed on site only.",
      +  "enum": [
      +    "ballast",
      +    "separate"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / concrete.mix
      Added value: +{
      +  "description": "Which of the maker's published mixes the cement, sand and aggregate follow: general purpose, paving or foundation. Mixed on site only.",
      +  "enum": [
      +    "general",
      +    "paving",
      +    "foundation"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / concrete.supply / description
      Previous value: -"Bags of dry mix, or ready-mixed concrete delivered by the cubic metre."New value: +"Bags of dry mix, cement with sand and aggregate mixed on site (mix), or ready-mixed concrete delivered by the cubic metre."
    • changedInput schema / properties / concrete.supply / enum
      Previous value: -[
      -  "bags",
      -  "mixed"
      -]New value: +[
      +  "bags",
      +  "mix",
      +  "mixed"
      +]
  10. Changed16 schema fields changed
    • removedInput schema / properties / bath / items / description
      Removed value: -"A bath or shower tray: a name (bath-1700, tray-900) or its length along the wall x its rim height x how far it comes into the room, in the units. The wall behind it comes off up to the rim, and its footprint off a floor being laid. The key may be repeated."
    • removedInput schema / properties / ceilingpaint.examples
      Removed value: -{
      -  "description": "Which of coats, coverage, extra and tins are still the labelled example figures. Leave it out unless the planner wrote it.",
      -  "type": "string"
      -}
    • addedInput schema / properties / detail
      Added value: +{
      +  "description": "How much to return. summary, the default: each item with its quantity and reason, what to check first and the list link. full: every line's working, pack breakdown and each shop's search link as well (20 KB or more).",
      +  "enum": [
      +    "summary",
      +    "full"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / door / items / description
      Removed value: -"One per door, the value repeated for more. A typical size by name (int-762 is a standard internal door) or width x height in the units. *2 after it means two the same."
    • removedInput schema / properties / end
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "string"
      -    }
      -  ],
      -  "description": "Written by the planner as the last pair of a list link: the number of pairs before it. Leave it out of a call."
      -}
    • removedInput schema / properties / floor.examples
      Removed value: -{
      -  "description": "Which of extra and packs are still the labelled example figures. Leave it out unless the planner wrote it.",
      -  "type": "string"
      -}
    • removedInput schema / properties / floor.underlay.price
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "string"
      -    }
      -  ],
      -  "description": "Accepted and ignored: this interface uses no prices."
      -}
    • removedInput schema / properties / lengths.architrave.price
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "string"
      -    }
      -  ],
      -  "description": "Accepted and ignored: this interface uses no prices."
      -}
    • removedInput schema / properties / lengths.skirting.price
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "string"
      -    }
      -  ],
      -  "description": "Accepted and ignored: this interface uses no prices."
      -}
    • removedInput schema / properties / opening / items / description
      Removed value: -"Any other opening to take off the walls (a garage door, an archway), as width x height or a name. The key may be repeated."
    • removedInput schema / properties / paper.price
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "string"
      -    }
      -  ],
      -  "description": "Accepted and ignored: this interface uses no prices."
      -}
    • removedInput schema / properties / v
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "string"
      -    }
      -  ],
      -  "description": "The version of the format. 1. Left out, 1 is assumed and the answer says so.",
      -  "enum": [
      -    "1"
      -  ]
      -}
    • removedInput schema / properties / wallpaint.examples
      Removed value: -{
      -  "description": "Which of coats, coverage, extra and tins are still the labelled example figures. Leave it out unless the planner wrote it.",
      -  "type": "string"
      -}
    • removedInput schema / properties / walltiles.price
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "string"
      -    }
      -  ],
      -  "description": "Accepted and ignored: this interface uses no prices."
      -}
    • changedInput schema / properties / window / description
      Previous value: -"One per window, the key repeated for more. A typical size by name or width x height in the units. Add *2 for two the same."New value: +"One per window, the value repeated for more. A typical size by name (win-standard) or width x height in the units. *2 after it means two the same."
    • removedInput schema / properties / window / items / description
      Removed value: -"One per window, the key repeated for more. A typical size by name or width x height in the units. Add *2 for two the same."
  11. Changed3 schema fields changed
    • changedInput schema / properties / door / description
      Previous value: -"One per door, the key repeated for more. A typical size by name (the names are in /ask.json) or width x height in the units. Add *2 for two the same."New value: +"One per door, the value repeated for more. A typical size by name (int-762 is a standard internal door) or width x height in the units. *2 after it means two the same."
    • changedInput schema / properties / door / items / description
      Previous value: -"One per door, the key repeated for more. A typical size by name (the names are in /ask.json) or width x height in the units. Add *2 for two the same."New value: +"One per door, the value repeated for more. A typical size by name (int-762 is a standard internal door) or width x height in the units. *2 after it means two the same."
    • changedInput schema / properties / name / description
      Previous value: -"What the room is called. Do not send one: it is carried into the links the answer gives, and the person can add it there."New value: +"What the room is called. Optional. It is carried into the links the answer gives, where the person can also add it themselves."
  12. Changed1 schema field changed
    • addedInput schema / properties / carpet.covering
      Added value: +{
      +  "description": "What is laid from the roll: carpet (with underlay and gripper) or sheet vinyl (loose laid, taped or glued; no underlay). Sheet vinyl is sold in 2, 3 and 4 m widths; its quick example is a 3 m roll.",
      +  "enum": [
      +    "carpet",
      +    "vinyl"
      +  ],
      +  "type": "string"
      +}
  13. Changed9 schema fields changed
    • addedInput schema / properties / concrete
      Added value: +{
      +  "description": "Whether the concrete slab uses labelled example figures (quick) or the thickness decided for the job and figures read off the bag (custom). Needed for the keys below to take effect. The room is the slab: its length and width, no height.",
      +  "enum": [
      +    "quick",
      +    "custom"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / concrete.extra
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Percent to add for an uneven base and spillage."
      +}
    • addedInput schema / properties / concrete.step
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The step in cubic metres the supplier sells ready-mixed concrete in. Ready-mixed only; optional."
      +}
    • addedInput schema / properties / concrete.supply
      Added value: +{
      +  "description": "Bags of dry mix, or ready-mixed concrete delivered by the cubic metre.",
      +  "enum": [
      +    "bags",
      +    "mixed"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / concrete.thickness
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Slab thickness in millimetres, decided for the job. BuildBatch suggests none."
      +}
    • addedInput schema / properties / concrete.weight
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The weight of one bag in kilograms. Bags only."
      +}
    • addedInput schema / properties / concrete.yield
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Cubic metres one bag makes, as printed on the bag. Bags only."
      +}
    • changedInput schema / properties / height / description
      Previous value: -"Floor to ceiling, in the units. Needed when walls are painted, papered, tiled or boarded (paint-carpet too); not for flooring, carpet, loft insulation or skirting alone."New value: +"Floor to ceiling, in the units. Needed when walls are painted, papered, tiled or boarded (paint-carpet too); not for flooring, carpet, loft insulation, concrete or skirting alone."
    • changedInput schema / properties / job / enum
      Previous value: -[
      -  "paint",
      -  "wallpaper",
      -  "tiles",
      -  "flooring",
      -  "carpet",
      -  "loft",
      -  "both",
      -  "paint-carpet",
      -  "skirting",
      -  "plasterboard"
      -]New value: +[
      +  "paint",
      +  "wallpaper",
      +  "tiles",
      +  "flooring",
      +  "carpet",
      +  "loft",
      +  "both",
      +  "paint-carpet",
      +  "skirting",
      +  "plasterboard",
      +  "concrete"
      +]
  14. Changed5 schema fields changed
    • addedInput schema / properties / bath
      Added value: +{
      +  "description": "A bath or shower tray: a name (bath-1700, tray-900) or its length along the wall x its rim height x how far it comes into the room, in the units. The wall behind it comes off up to the rim, and its footprint off a floor being laid. The key may be repeated.",
      +  "items": {
      +    "description": "A bath or shower tray: a name (bath-1700, tray-900) or its length along the wall x its rim height x how far it comes into the room, in the units. The wall behind it comes off up to the rim, and its footprint off a floor being laid. The key may be repeated.",
      +    "type": "string"
      +  },
      +  "maxItems": 50,
      +  "type": "array"
      +}
    • addedInput schema / properties / floor.tileh
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Floor tiles: the other side of a tile, in millimetres (with floor.tilew)."
      +}
    • addedInput schema / properties / floor.tilew
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Floor tiles: one side of a tile, in millimetres, for a count of tiles (with floor.tileh). Optional; the boxes are still counted by area."
      +}
    • addedInput schema / properties / walltiles.tileh
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The other side of a wall tile, in millimetres (with walltiles.tilew)."
      +}
    • addedInput schema / properties / walltiles.tilew
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ],
      +  "description": "One side of a wall tile, in millimetres, for a count of tiles (with walltiles.tileh). Optional; the boxes are still counted by area."
      +}
  15. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources