Mastodon の現行版で使われている Snowflake‐形式の投稿識別子は、上の方の桁がミリ秒単位の UNIX‐時刻で、下の 16‐ビットが時刻以外の情報。時刻だけに注目するなら、一秒経過する毎に 65536000 だけ加算されてる。
「何時から何時まで」と範囲を指定してタイムラインを取得したい場合に、API の説明書を信じるなら「min_id」や「max_id」などのパラメーターは境界の値を区間に含まないのがずっと気になってる。厳密に考えるなら、境界となる識別子に 1 を足したり引いたりしないといけない。
それを気にしないなら簡単なんだけど。ミリ秒単位で区間を指定する需要はないので、秒が最小単位だとすれば区切りとなる値は常に千の倍数。倍精度の浮動小数点数で雑に扱ったとしても、表現し切れない末尾は問題にならない。精度が足りないので、数値のまま 1 を足す事はできない。
本当に境界の値を含まないのかしら。影響を受けるのは、投稿がミリ秒単位で指定時刻に一致し、しかも下位 16‐ビットのハッシュ値がたまたま 0 と算出された場合だけなので観察できない。