I had to deal with discrete FX quotes a long time ago. My answer may be badly out of date, sorry.
For each currency pair, there is a "PIP", which stands for "point in percentage" or "price interest point" or "percentage in point", and used to be the smallest amount by which the quote can change. It is usually 1 basis point (i.e. the currency pair is quoted to 4 decimals), but some currency pairs have different PIP. or example for Japanese Yen JPY, a PIP is the second decimal. For some currencies v GBP, PIP is the fifth decimal.
However many modern FX trading platforms actually use 1/10 PIP quotes for spot, i.e. usually 5 decimals, sometimes called "pipettes", "micro PIPs", or "decimal PIPs". Some use 1/2 PIPs. Your data vendor should be able to give you their list of PIPs and precisions (not necessarily the same thing), which in theory may differ a little from other vendors.
For example, this table https://fx.cboe.com/products/currency.jsp lists "ECN/FA Min Price Increment" for many currency pairs, most of them in the 5th decimal.
Bloomberg BFIX page https://www.bloomberg.com/markets/currencies/fx-fixings sows 4 decimals for most currency pairs, but 5 decimals for a few pairs (and less than 4 for a few others).
This brochure https://www.eurexchange.com/resource/blob/1621162/59398ad9144b5d1bb81ca4214b6e420d/data/factsheet_eurex_currency_products_brochure.pdf mentions:
Rolling spot futures
Minimum tick value is OTC spot equivalent; tenths of a pip (0.00001)
This recent paper https://www.federalreserve.gov/econres/feds/files/2020051pap.pdf describes how EBS switched to 1/10 PIP precision, but later switched to 1/2 PIP precision (i.e. the fifth decimal can only be "0" or "5").
As for forwards, for example, WM/Refinitiv documentation https://www.refinitiv.com/content/dam/marketing/en_us/documents/methodology/wm-refinitiv-methodology.pdf says:
All NDF (non-delivery forward) rates (bid, offer and mid) are rounded to five decimal places after the decimal point. Where a “5” is encountered, the
convention is to round up.
Other vendors' forwards often have 6 digits.
For example:
EUR/USD moves from 1.09128 to 1.09123: EUR has depreciated 1/2 pip (or 5 pipettes). Note that EUR, GBP, and a few other currencies are "quoted cable", the amoung of USD equal to 1 unit of the other currency. 1 pipette is 0.00001 USD.
USD/JPY moves from 107.84 to 107.85: JPY has depreciated 1 pip (or 10 pipettes). Most currencies are quoted as the amount of the other currency equal to 1 USD. 1 pipette is 0.00001 of the other currency.