Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Order and trade experimental contexts #1021

Merged
merged 25 commits into from
Jul 28, 2023
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c46965f
First pass at defining context types for order, trade and product (wh…
kriswest Jul 7, 2023
1b4312d
corrections to exmples
kriswest Jul 7, 2023
e57be07
adding OrderList and TradeList types
kriswest Jul 7, 2023
7261738
Merge branch 'master' into order-and-trade-experimental-contexts
kriswest Jul 18, 2023
1e29ee9
Adding markdown docs for experimental types
kriswest Jul 18, 2023
59ef08a
Update product.schema.json - add id to example
kriswest Jul 24, 2023
c2e1592
Update trade.schema.json - add id to product example
kriswest Jul 24, 2023
1ac641e
Update order.schema.json - add id to product example
kriswest Jul 24, 2023
2f44d72
Update Product.md - add id to product example
kriswest Jul 24, 2023
a1aca4f
Update Trade.md - add id to product example
kriswest Jul 24, 2023
e6ff515
Update Order.md - add id to product example
kriswest Jul 24, 2023
4ca3b88
Update TradeList.md - add id to product example
kriswest Jul 24, 2023
0880e25
Update order.schema.json - fixing indentation
kriswest Jul 24, 2023
cc339c4
Update trade.schema.json - fix indentation
kriswest Jul 24, 2023
eea6844
Update TradeList.md - remove extraneous newline
kriswest Jul 24, 2023
0bf5065
Update product.schema.json - adding id to product example
kriswest Jul 24, 2023
da596f9
copying schemas to website
kriswest Jul 24, 2023
23fd549
corrections from meeting review
kriswest Jul 28, 2023
cb15df6
Apply suggestions from code review
kriswest Jul 28, 2023
efbe408
Merge branch 'master' into order-and-trade-experimental-contexts
kriswest Jul 28, 2023
95ad9f0
Adding new schemas back in after merge, copy to website, regenerating…
kriswest Jul 28, 2023
e2353b2
removing extra copy of schemas in website
kriswest Jul 28, 2023
32bef71
correcting links to new schemas
kriswest Jul 28, 2023
ca80b00
Correct links in markdown docs
kriswest Jul 28, 2023
b8fdbfc
Changelog
kriswest Jul 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions docs/context/ref/Order.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
id: Order
sidebar_label: Order
title: Order
hide_title: true
---
# `Order`

[`@experimental`](/docs/fdc3-compliance#experimental-features) context type representing an order. To be used with OMS and EMS systems.

This type currently only defines a required `id` field, which should provide a reference to the order in one or more systems, an optional human readable `name` field to be used to summarize the order and an optional `details` field that may be used to provide additional detail about the order, including a context representing a `product`, which may be extended with arbitrary properties. The `details.product` field is currently typed as a unspecified Context type, but both `details` and `details.product` are expected to be standardized in future. require not just a single trade, but multiple.
kriswest marked this conversation as resolved.
Show resolved Hide resolved

## Type

`fdc3.order`

## Schema

<https://fdc3.finos.org/schemas/next/order.schema.json>

## Details

| Property | Type | Required | Details |
|--------------|------------|----------|---------------------------|
| `type` | string | Yes | `'fdc3.order'` |
| `id` | object | Yes | One or more identifiers that refer to the order in an OMS, EMS or related system. Specific key names for systems are expected to be standardized in future. E.g.:`{ myOMS: '12345' }` |
| `name` | string | No | An optional human-readable summary of the order. |
| `details` | object | No | Optional additional details about the order, which may include a product element that is an, as yet undefined but extensible, Context |
| `details.product` | Product | No | The product that the order relates to |

## Examples

```js
const order1 = {
"type": "fdc3.order",
"name": "...",
"id": {
"myOMS": "12345"
},
"details": {
"product": {
"type": "fdc3.product",
"id": {
"productId": "ABC123"
},
"instrument": {
"type": "fdc3.instrument",
"id": {
"ticker": "MSFT"
}
}
}
}
};
```

```js
const order2 = {
"type": "fdc3.order",
"id": {
"myOMS": "ABC123"
}
};
```

## See Also

Other Types

- [OrderList](OrderList)
- [Product](Product)
- [Trade](Trade)
58 changes: 58 additions & 0 deletions docs/context/ref/OrderList.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
id: OrderList
sidebar_label: OrderList
title: OrderList
hide_title: true
---
# `OrderList`

[`@experimental`](/docs/fdc3-compliance#experimental-features) A list of orders. Use this type for use cases that require not just a single order, but multiple.

Notes:

- The OrderList schema does not explicitly include identifiers in the id section, as there is not a common standard for such identifiers. Applications can, however, populate this part of the contract with custom identifiers if so desired.

## Type

`fdc3.orderList`

## Schema

<https://fdc3.finos.org/schemas/next/orderList.schema.json>

## Details

| Property | Type | Required | Example Value |
|--------------|------------|----------|---------------------------|
| `type` | string | Yes | `'fdc3.orderList'` |
| `id` | object | No | `{ listId: '1234' }` |
| `name` | string | No | `'Today's orders'` |
| `orders` | Trade[] | Yes | `[order1, order2]` |

## Example

```js
const orderList = {
type: "fdc3.orderList",
orders: [
{
"type": "fdc3.order",
"id": {
"myOMS": "ABC123"
}
},
{
"type": "fdc3.order",
"id": {
"myOMS": "DEF456"
}
}
]
};
```

## See Also

Other Types

- [Order](Order)
56 changes: 56 additions & 0 deletions docs/context/ref/Product.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
id: Product
sidebar_label: Product
title: Product
hide_title: true
---
# `Product`

[`@experimental`](/docs/fdc3-compliance#experimental-features) context type representing a tradable product. To be used with OMS and EMS systems.\n\nThis type is currently only loosely defined as an extensible context object, with an optional instrument field.
kriswest marked this conversation as resolved.
Show resolved Hide resolved

Notes:

- The Product schema does not explicitly include identifiers in the id section, as there is not a common standard for such identifiers. Applications can, however, populate this part of the contract with custom identifiers if so desired.

## Type

`fdc3.product`

## Schema

<https://fdc3.finos.org/schemas/next/product.schema.json>

## Details

| Property | Type | Required | Example Value |
|--------------|------------|----------|---------------------------|
| `type` | string | Yes | `'fdc3.product'` |
| `id` | object | Yes | One or more identifiers that refer to the product. Specific key names for systems are expected to be standardized in future. |
| `name` | string | No | A human-readable summary of the product. |
| `instrument` | Product[] | No | A financial instrument that relates to the definition of this product. |

## Example

```js
const product = {
kriswest marked this conversation as resolved.
Show resolved Hide resolved
"type": "fdc3.product",
"id": {
"productId": "ABC123"
},
"instrument": {
"type": "fdc3.instrument",
"id": {
"ticker": "MSFT"
}
}
};
```

## See Also

Other Types

- [Instrument](Instrument)
- [ProductList](ProductList)
- [Order](Order)
- [Trade](Trade)
63 changes: 63 additions & 0 deletions docs/context/ref/Trade.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
id: Trade
sidebar_label: Trade
title: Trade
hide_title: true
---
# `Trade`

[`@experimental`](/docs/fdc3-compliance#experimental-features) context type representing a trade. To be used with execution systems.

This type currently only defines a required `id` field, which should provide a reference to the trade in one or more systems, an optional human readable `name` field to be used to summarize the trade and a required `product` field that may be used to provide additional detail about the trade, which is currently typed as a unspecified Context type, but `product` is expected to be standardized in future.
kriswest marked this conversation as resolved.
Show resolved Hide resolved

Notes:

- The Trade schema does not explicitly include identifiers in the id section, as there is not a common standard for such identifiers. Applications can, however, populate this part of the contract with custom identifiers if so desired.

## Type

`fdc3.trade`

## Schema

<https://fdc3.finos.org/schemas/next/trade.schema.json>

## Details

| Property | Type | Required | Details |
|--------------|------------|----------|---------------------------|
| `type` | string | Yes | `'fdc3.trade'` |
| `id` | object | Yes | One or more identifiers that refer to the trade in an OMS, EMS or related system. Specific key names for systems are expected to be standardized in future. |
| `name` | string | No | A human-readable summary of the trade, e.g. `'100 TSLA @ 290.85 USD'` |
| `product` | Product | Yes | A tradeable product |

## Example

```js
const trade = {
"type": "fdc3.trade",
"name": "...",
"id": {
"myEMS": "12345"
},
"product": {
"type": "fdc3.product",
"id": {
"productId": "ABC123"
},
"instrument": {
"type": "fdc3.instrument",
"id": {
"ticker": "MSFT"
}
}
}
};
```

## See Also

Other Types

- [Product](Product)
- [TradeList](TradeList)
83 changes: 83 additions & 0 deletions docs/context/ref/TradeList.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
id: TradeList
sidebar_label: TradeList
title: TradeList
hide_title: true
---
# `TradeList`

[`@experimental`](/docs/fdc3-compliance#experimental-features) A list of trades. Use this type for use cases that require not just a single trade, but multiple.

Notes:

- The TradeList schema does not explicitly include identifiers in the id section, as there is not a common standard for such identifiers. Applications can, however, populate this part of the contract with custom identifiers if so desired.

## Type

`fdc3.tradeList`

## Schema

<https://fdc3.finos.org/schemas/next/tradeList.schema.json>

## Details

| Property | Type | Required | Example Value |
|--------------|------------|----------|---------------------------|
| `type` | string | Yes | `'fdc3.tradeList'` |
| `id` | object | No | `{ listId: '1234' }` |
| `name` | string | No | `'Today's trades'` |
| `trades` | Trade[] | Yes | `[trade1, trade2]` |

## Example

```js
const tradeList = {
type: "fdc3.tradeList",
trades: [
{
"type": "fdc3.trade",
"name": "...",
"id": {
"myEMS": "12345"
},
"product": {
"type": "fdc3.product",
"id": {
"productId": "ABC123"
},
"instrument": {
"type": "fdc3.instrument",
"id": {
"ticker": "MSFT"
}
}
}
},
{
"type": "fdc3.trade",
"id": {
"myEMS": "67890"
},
"product": {
"type": "fdc3.product",
"id": {
"productId": "DEF456"
},
"instrument": {
"type": "fdc3.instrument",
"id": {
"ticker": "TSLA"
}
}
}
}
]
};
```

## See Also

Other Types

- [Trade](Trade)
8 changes: 8 additions & 0 deletions docs/context/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,14 @@ The following are standard FDC3 context types:
- [`fdc3.transactionResult`](ref/TransactionResult) ([schema](/schemas/next/transactionresult.schema.json))
- [`fdc3.valuation`](ref/Valuation) ([schema](/schemas/next/valuation.schema.json))

The following are [`@experimental`](/docs/fdc3-compliance#experimental-features) types, which are in the process of being defined:

- [`fdc3.order`](ref/Order) ([schema](/schemas/next/order.schema.json))
- [`fdc3.orderList`](ref/OrderList) ([schema](/schemas/next/orderList.schema.json))
- [`fdc3.product`](ref/Product) ([schema](/schemas/next/product.schema.json))
- [`fdc3.trade`](ref/Trade) ([schema](/schemas/next/trade.schema.json))
- [`fdc3.tradeList`](ref/TradeList) ([schema](/schemas/next/tradeList.schema.json))

### Examples

The below examples show how the base context data interface can be used to define specific context data objects.
Expand Down
Loading